Cod sursa(job #658061)
| Utilizator | Data | 7 ianuarie 2012 20:57:20 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include<fstream>
#define S 500000
using namespace std;
int main()
{
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int v[S],nr,elmaj,x;
register int i;
in>>x;
for(i=1;i<=x;i++)
in>>v[i];
elmaj=v[1];nr=1;
for(i=2;i<=x;i++){
if(v[i]==elmaj) nr++;
else nr--;
if(nr==0){
elmaj=v[i];
nr=1;
}
}
nr=0;
for(i=1;i<=x;i++) if(v[i]==elmaj) nr++;
if(nr<x/2+1) out<<"-1";
else out<<elmaj<<" "<<nr;
return 0;
}