Cod sursa(job #1649449)
Utilizator | Data | 11 martie 2016 13:41:28 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
const int NMax = 1e6 + 5;
int v[NMax];
int main(){
int n, best, ap;
fin >> n;
best = -5; ap = 1;
for(int i = 1; i <= n; i++){
fin >> v[i];
if(v[i] == best){
ap++;
} else {
ap--;
if(ap == 0){
ap = 1;
best = v[i];
}
}
}
ap = 0;
for(int i = 1; i <= n; i++){
if(v[i] == best) ap++;
}
if(ap >= (n / 2) + 1){
fout << best << " " << ap;
} else {
fout << -1;
}
return 0;
}