Cod sursa(job #677728)
| Utilizator | Data | 10 februarie 2012 16:25:41 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <stdio.h>
int X[1000100];
int main ()
{
int i, N, best = 0, frec = 1;
freopen ("elmaj.in", "r", stdin);
freopen ("elmaj.out", "w", stdout);
scanf ("%d", &N);
for (i = 1; i <= N; i ++)
{
scanf ("%d", &X[i]);
if (X[i] == best)
frec ++;
else
{
frec --;
if (frec == 0)
best = X[i], frec = 1;
}
}
frec = 0;
for (i = 1; i <= N; i ++)
if (X[i] == best)
frec ++; //poate u
if (frec >= N / 2 + 1)
printf ("%d %d", best, frec);
else
printf ("-1");
return 0;
}
