Cod sursa(job #2723082)
Utilizator | Magirescu Tudor Frostfire | Data | 13 martie 2021 15:39:12 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <iostream>
#include <fstream>
#define NMAX 1000000
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n, v[NMAX+10];
int main()
{
fin >> n >> v[1];
int cnt = 1, curr = v[1];
for(int i=2; i<=n; i++)
{ fin >> v[i];
if(v[i] == curr)
cnt++;
else
{ cnt--;
if(!cnt)
{ curr = v[i];
cnt = 1;
}
}
}
cnt = 0;
for(int i=1; i<=n; i++)
if(v[i] == curr)
cnt++;
if(cnt >= n/2 + 1)
fout << curr << ' ' << cnt << '\n';
else
fout << -1 << '\n';
return 0;
}