Cod sursa(job #2773972)
Utilizator | Data | 9 septembrie 2021 14:05:35 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.81 kb |
#include <fstream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int v[1000009], n;
int main(){
in >> n;
for(int i = 1; i <= n; i++)
in >> v[i];
int candidat = v[1], nr = 1;
for(int i = 2; i <= n; i++) {
if(v[i] == candidat)
nr++;
else{
if(nr == 1)
candidat = v[i];
else
nr--;
}
}
nr = 0;
for(int i = 1; i <= n; i++)
if(v[i] == candidat) nr++;
if(nr >= (n + 1) / 2)
out << candidat << ' ' << nr;
else
out << -1;
return 0;
}