Cod sursa(job #2211071)
Utilizator | Tutuldunsa Voronokda zvon | Data | 9 iunie 2018 12:35:53 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include<iostream>
#include<fstream>
using namespace std;
int a[1000005];
int N;
int main(void) {
int cand = -1;
int k = 0;
int i;
ifstream fi("elmaj.in");
ofstream fo("elmaj.out");
fi >> N;
for (i = 0; i < N; i++) {
fi >> a[i];
}
for (i = 0; i < N; i++) {
if (k == 0) {
cand = a[i];
k = 1;
} else if (cand == a[i]) {
k++;
} else {
k--;
}
}
int c = 0;
for (i = 0; i < N; i++) {
if (a[i] == cand)
c++;
}
if (c > N/2)
fo << cand << ' ' << c;
else
fo << -1;
return 0;
}