Cod sursa(job #1074539)
Utilizator | Data | 7 ianuarie 2014 18:53:11 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include <fstream>
using namespace std;
ifstream in("txt.in");
ofstream out("txt.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 << ' ' << c;
else
out << -1;
return 0;
}