Cod sursa(job #1167593)
| Utilizator | Data | 5 aprilie 2014 15:21:41 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include <fstream>
using namespace std;
ifstream fin ("elmaj.in");
ofstream fout ("elmaj.out");
const int N = 1e6;
int v[N], n;
int main() {
fin >> n;
int elem = -2e9, nr = 0;
for (int i = 0; i < n; ++i) {
fin >> v[i];
if (!nr) {
elem = v[i];
nr = 1;
}
else {
if (elem == v[i])
nr++;
else
nr--;
}
}
if (elem == -2e9) {
fout << -1;
return 0;
}
nr = 0;
for (int i = 0; i < n; ++i)
if (v[i] == elem)
nr++;
if (nr > n / 2)
fout << elem;
else
fout << -1;
}
