Cod sursa(job #658066)
| Utilizator | Data | 7 ianuarie 2012 21:04:55 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include<stdio.h>
#define S 500000
using namespace std;
int main()
{
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
int v[S],nr,elmaj,x;
register int i;
scanf("%d",&x);
for(i=1;i<=x;i++)
scanf("%d",&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) printf("%d %d",elmaj,nr);
else printf("-1");
return 0;
}