Cod sursa(job #2132792)
| Utilizator | Data | 16 februarie 2018 00:58:25 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include<fstream>
using namespace std;
ifstream in ("elmaj.in");
ofstream out ("elmaj.out");
int alfa,sol,s,n,v[1000005],stiva[1000005];
int main (void) {
in >> n;
for (int i = 1; i <= n; i ++) {
in >> v[i];
if (s > 0 && stiva[s] != v[i]) {
s --;
}
else {
s++;
stiva[s] = v[i];
}
}
if (s == 0) {
out << -1;
return 0;
}
alfa = stiva[1];
for (int i = 1; i <= n; i ++) {
if (v[i] == alfa) {
sol ++;
}
}
if (sol >= n/2 + 1) {
out << alfa <<" "<< sol;
}
else {
out << -1;
}
return 0;
}
