Cod sursa(job #1060683)
Utilizator | Alexandru Valeanu AlexandruValeanu | Data | 18 decembrie 2013 13:54:46 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Teme Pregatire ACM Unibuc 2013 | Marime | 0.75 kb |
#include <cstdio>
int N, val;
int elem, contor;
int v[1000001];
int main()
{
freopen("elmaj.in", "r", stdin);
freopen("elmaj.out", "w", stdout);
scanf("%d", &N);
for ( int i = 1; i <= N; ++i )
{
scanf("%d", &val);
v[i] = val;
if ( val != elem )
contor--;
else
contor++;
if ( contor < 1 )
{
elem = val;
contor++;
}
}
contor = 0;
for ( int i = 1; i <= N; ++i )
{
val = v[i];
if ( val == elem )
contor++;
}
if ( contor >= N/2 + 1 )
printf("%d %d\n", elem, contor);
else
printf("-1\n");
return 0;
}