Cod sursa(job #2340260)
Utilizator | Data | 10 februarie 2019 10:11:41 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int v[1000005];
int main()
{
int n;
fin >> n;
int k = 0, cand = -1;
for(int i = 1; i <= n; ++i){
fin >> v[i];
if(k == 0){
cand = v[i];
++k;
}
else if(v[i] != cand)
--k;
else ++k;
}
int nr = 0;
for(int i = 1; i <= n; ++i)
if(v[i] == cand)
++nr;
if(nr > n / 2)
fout << cand << ' ' << nr << '\n';
else fout << -1 << '\n';
return 0;
}