Cod sursa(job #785443)

Utilizator round1First Round round1 Data 9 septembrie 2012 00:37:19
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
#define Max 666013
ifstream f("elmaj.in");
ofstream h("elmaj.out");

vector<int>g[Max];
int n;

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

int main()
{
    int x;


    f >> n;
    for(int i=1;i<=n;i++)
    {
        f >> x;
        g[x%Max].push_back(x);
    }
    rasp();

    return 0;
}