Cod sursa(job #969001)
Utilizator | Raba Sebastian-Setafan SebaRaba | Data | 3 iulie 2013 11:53:01 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
#define Max 1000005
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int N,X[Max],cand,k,Sol;
int main()
{
fin>>N;
for(int i=1;i<=N;i++)
{
fin>>X[i];
}
for(int i=1;i<=N;i++)
{
if(k==0)
{
cand=X[i]; k=1;
}
else
if(X[i]==cand)
k++;
else
k--;
}
for(int i=1;i<=N;i++)
if(X[i]==cand) Sol++;
if(Sol<N/2+1)
fout<<"-1\n";
else
fout<<cand<<" "<<Sol<<"\n";
return 0;
}