Cod sursa(job #1010068)
Utilizator | Ioana Tamas timics | Data | 14 octombrie 2013 11:20:34 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include<fstream>
#include<iostream>
#include<map>
using namespace std;
int N,cand=-1,k=0,a[1000100];
map<int,int> M;
int main()
{
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
fin>>N;
for(int i=0;i<N;++i)
{
fin>>a[i];
if(k==0)
{
cand=a[i];
++k;
}
else if (a[i] == cand)
++k;
else
--k;
}
k=0;
for(int i=0;i<N;++i)
{
if (a[i] == cand)
++k;
}
if(k>N/2)
fout<<cand<<" "<<k<<endl;
else
fout<<-1<<endl;
return 0;
}