Cod sursa(job #1074533)
| Utilizator | Data | 7 ianuarie 2014 18:47:42 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <fstream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int main()
{
int N;
int *v = new int[1000001];
int maj=-1, c=0;
in >> N;
for (int i=0; i<N; ++i){
in >> v[i];
if (!c){
maj = v[i];
}
else if (v[i]==maj){
++c;
}
else{
--c;
}
}
c = 0;
for (int i=0; i<N; ++i){
c += v[i]==maj;
}
if (c>=N/2+N%2)
out << maj;
else
out << -1;
out.close();
return 0;
}
