Cod sursa(job #2046060)
| Utilizator | Data | 23 octombrie 2017 12:55:09 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
#include <map>
#include <algorithm>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
#define NMAX 1000001
int N;
unsigned int v[NMAX];
int val,nr;
int main() {
in >> N;
for(int i = 1; i <= N; ++i)
in >> v[i];
for(int i = 1; i <= N; ++i)
if(nr == 0){
val = v[i];
nr = 1;
}
else if(val == v[i])nr++;
else nr--;
if(nr > 0){
nr = 0;
for(int i = 1; i <= N; ++i)
if(val == v[i])
nr++;
}
if(nr > N/2)
out << val << " " << nr;
else
out << -1;
return 0;
}
