Cod sursa(job #929327)

Utilizator AeroHHorea Stefan AeroH Data 26 martie 2013 23:07:55
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <cstdio>
#include <algorithm>
using namespace std;
FILE*fin=fopen("elmaj.in","r");
FILE*fout=fopen("elmaj.out","w");
unsigned int i,j,k,a,b,v[1100005],rasp,raspe,nr,nre,n;
int main()
{
    fscanf(fin,"%d",&n);
    for (i=0;i<n;i++)
    fscanf(fin,"%d",&v[i]);

    sort(v,v+n);

for (i=0;i<n;i++)
    {rasp=v[i];
{
    nr=0;
    while (rasp==v[i])
    {
        if (rasp==v[i+50000])
        {i+=50000;nr+=50000;}
        else if (rasp==v[i+5000])
        {i+=5000;nr+=5000;}
        else if (rasp==v[i+500])
        {i+=500;nr+=500;}
        else if (rasp==v[i+5])
        {i+=5;nr+=5;}
        else {++i;++nr;}
    }
    --i;
    if (nr>nre)
    {
        nre=nr;
        raspe=rasp;
    }
}}
if (nre>n/2)
{
    fprintf(fout,"%d %d\n",raspe,nre);
}
else fprintf(fout,"-1\n");

    return 0;
}