Cod sursa(job #1730923)
Utilizator | Data | 17 iulie 2016 20:28:24 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
#define NMAX 1000010
using namespace std;
unsigned int v[NMAX];
int el,n;
int maj,majf;
int main()
{
ifstream f("elmaj.in");
ofstream g("elmaj.out");
f >> n;
f >> maj;
v[maj]++;
majf=1;
for(int i=1;i<n;i++){
f >> el;
v[el]++;
if(el==maj) majf++;
else{
if(majf>1) majf--;
else maj=el;
}
}
if(v[maj] >= n/2+1) g << maj <<' ' << v[maj];
else g << -1;
return 0;
}