Cod sursa(job #788728)

Utilizator round2Test P round2 Data 15 septembrie 2012 18:17:51
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
#define Max 666013 // cu matrici **
ifstream f("elmaj.in");
ofstream g("elmaj.out");

vector<int>v[Max];
int n,x;

void elmaj()
{
    int p,max,nr;
    for(int i=0;i<Max;i++)
    if(v[i].size()>n/2)
    {
        sort(v[i].begin(),v[i].end());
        p=v[i][0];
        max=1;
        nr=1;
        for(int j=1;j<v[i].size();j++)
        {
            if(v[i][j]==v[i][j-1])nr++;
            if(nr>max){max=nr;p=v[i][j];}
        }
    }
    if(nr>n/2)g<<p<<' '<<max<<'\n'; else g<<"-1\n";
}

int main()
{
    f >> n;
    for(int i=1;i<=n;i++)
    {
        f >> x;
        v[x%Max].push_back(x);
    }
    elmaj();
    return 0;
}