Cod sursa(job #732568)
Utilizator | Data | 10 aprilie 2012 17:48:51 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include<cstdio>
int n,a[1000100];
int count()
{
int i,last=-1,ok=0;
for(i=1;i<=n;i++)
{
last=(ok==0)?a[i]:last;
ok=(ok==0)?0:ok;
ok=(last==a[i])?(ok+1):(ok-1);
}
if(last<0) {printf("-1"); return 0;}
for(i=1,ok=0;i<=n;i++) ok=(a[i]==last)?(ok+1):ok;
if(ok>n/2) printf("%d %d\n",last,ok);
else printf("-1");
return 0;
}
int main()
{
int i;
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
return count();
}