Cod sursa(job #1061483)
| Utilizator | Data | 19 decembrie 2013 20:48:24 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Teme Pregatire ACM Unibuc 2013 | Marime | 0.52 kb |
#include <fstream>
#include <algorithm>
using namespace std;
const int NMAX = 1000100;
int N, V[NMAX], L, R;
int main()
{
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
fin >> N;
for(int i = 0; i < N; ++ i) fin >> V[i];
sort(V, V + N);
int Val = V[N / 2], L = N / 2, R = N / 2;
while(R < N && V[R] == Val) R ++;
R --;
while(L >= 0 && V[L] == Val) L --;
L ++;
if(R - L + 1 >= N / 2 + 1) fout << Val << " " << R - L + 1 << "\n";
else fout << -1;
}
