Cod sursa(job #638768)
Utilizator | Data | 21 noiembrie 2011 16:29:20 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include <fstream>
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int n,v[1000001],k=0,i,cand=-1,a=0;
int main () {
f >> n;
for (i=1;i<=n;i++) {
f >> v[i];
if (k==0) cand=v[i];
if (cand==v[i]) k++;
else k--;
}
if (cand<0) {g<<-1;f.close();g.close();return 0;}
for (i=1;i<=n;i++)
if (v[i]==cand) a++;
if (a<n/2+1) {g<<-1;f.close();g.close();return 0;}
g << cand << ' ' << a << '\n';
f.close();g.close();
return 0;
}