Cod sursa(job #1769581)
| Utilizator | Data | 2 octombrie 2016 19:42:40 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include<cstdio>
int v[1000007];
int main()
{
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
int n,m,i,cand,s=1,l=0;
scanf("%d",&n );
for ( i = 1 ; i <= n ; i++ ){
scanf("%d",&m );
v[i] = m;
}
cand = v[1];
for ( i = 2 ; i <= n ; i++ ){
if ( cand == v[i] && s != 0 )
s++;
else
if ( cand != v[i] && s != 0 )
s--;
else
if ( s == 0 )
cand = v[i];
}
for ( i = 1 ; i <= n ; i++ ){
if ( v[i] == cand )
l++;
}
if ( l > n/2 )
printf("%d %d",cand,l);
else
printf("%d",-1);
}
