Cod sursa(job #658078)
| Utilizator | Data | 7 ianuarie 2012 21:13:21 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.43 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]);
for(i=2;i<=x;i++){
if(nr==0){elmaj=v[i];nr=1;}
if(elmaj==v[i]) nr++;
else nr--;
}
if(nr==0){printf("-1");return 0;}nr=0;
for(i=1;i<=x;i++) if(v[i]==elmaj) nr++;
printf("%d %d",elmaj,nr);
return 0;
}