Cod sursa(job #906614)

Utilizator SagunistuStrimbu Alexandru Sagunistu Data 6 martie 2013 22:38:59
Problema Elementul majoritar Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>

using namespace std;
int v[1000001],ap[1000001],b[1000001];
int main()
{ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n,i,poz,m=0,maxim,elem;
fin>>n;
for(i=1;i<=n;i++)
    fin>>v[i];
for(i=1;i<=n;i++)
    {poz=1;
     while(poz<=m&&v[i]!=b[poz])
        poz++;
     if(poz==m+1)
        {b[++m]=v[i];
         ap[m]=1;
        }
     else
        ap[poz]++;
    }
for(i=1,maxim=0;i<=m;i++)
    if(ap[i]>maxim)
        {maxim=ap[i];
         elem=b[i];
        }
if(maxim>=n/2+1)
    fout<<elem<<" "<<maxim;
else
    fout<<"-1";
    return 0;
}