Cod sursa(job #1080639)
Utilizator | Raduta Cosmin cosmo0093 | Data | 12 ianuarie 2014 18:42:43 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
int main() {
std::ifstream in("elmaj.in");
std::ofstream out("elmaj.out");
int nV;
in >> nV;
int *Arr = new int[nV];
for(int i = 0; i < nV; i++) {
in >> Arr[i];
}
int ap = 1, nM = Arr[0];
for(int i = 1; i < nV; i++) {
if(ap == 0) {
nM = Arr[i];
ap = 1;
} else if(Arr[i] == nM) {
ap++;
} else {
ap--;
}
}
ap = 0;
for(int i = 0; i < nV; i++) {
if(nM == Arr[i]) {
ap++;
}
}
if(ap <= nV / 2) {
out << -1;
} else {
out << nM << ap;
}
return 0;
}