Cod sursa(job #926589)
Utilizator | Apopeid Alejandro apopeid13 | Data | 25 martie 2013 11:56:22 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include<fstream>
using namespace std;
#define MAX 1000001
int N , v[MAX],cand,k,nr;
int main()
{
ifstream f("elmaj.in");
ofstream g("elmaj.out");
f>>N;
for(int i = 1 ; i <= N ; ++i )
f>>v[i];
for( int i = 1 ; i <= N ; ++i )
{
if(k == 0)
{
cand = v[i];
k = 1;
}
else
if(cand == v[i])k++;
else k--;
}
if(k==0)g<<-1;
else{
for(int i = 1 ; i <= N ; ++i)
if(v[i] == cand)nr++;
if(nr >= N/2+1)
g<<cand<<" "<<nr;
else
g<<-1;
}
f.close();
g.close();
return 0;
}