Cod sursa(job #902400)
Utilizator | Florin Ghesu floringh06 | Data | 1 martie 2013 14:01:35 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <cstdio>
#include <algorithm>
#define MAX_N 1000005
int v[MAX_N];
int main () {
freopen ("elmaj.in", "r", stdin);
freopen ("elmaj.out", "w", stdout);
int N;
scanf ("%d", &N);
for (int i = 1; i <= N; ++i) scanf ("%d", v + i);
std::nth_element(v + 1, v + N/2, v + N + 1);
int value = v[N/2], freq = 0;
for (int i = 1; i <= N; ++i) if (v[i] == value) ++freq;
if (freq > N/2)
printf ("%d %d\n", value, freq);
else
printf ("-1\n");
}