Cod sursa(job #1573951)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 20 ianuarie 2016 01:00:00
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("elmaj.in");
ofstream out("elmaj.out");

int n;
int *v;
int *marcaj;
int u;

int main()
{
    in>>n;
    int minn,maxx;
    v = new int[n+1];
    in>>v[1];
    minn = v[1];
    maxx = v[1];
    for(int i=2;i<=n;i++)
        {
            in>>v[i];
            if(minn > v[i])
                minn = v[i];
            if(maxx < v[i])
                maxx = v[i];
        }
    in.close();
    u = maxx - minn+1;
    marcaj = new int[u];
    for(int i=0;i<u;i++)
        marcaj[i] = 0;
    for(int i=1;i<=n;i++)
        marcaj[v[i]-minn]++;
        int val = 0,poz = -1;
    for(int i=0;i<u;i++)
        if(marcaj[i]>= n/2+1)
    {
        out<<i+minn<<" "<<marcaj[i]<<'\n';
        delete[] v;
        delete[] marcaj;
       return 0;
    }
    out<<-1<<'\n';
    out.close();
    delete[] v;
    delete[] marcaj;
    return 0;
}