Cod sursa(job #1262562)
Utilizator | Tdr Drt tdr_drt | Data | 13 noiembrie 2014 12:20:18 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
using namespace std;
ifstream f("elmaj.in"); ofstream g("elmaj.out");
int n, i, nr, k, cand=-1, a[1000001];
int main()
{ f>>n;
for( i=0;i<n;i++) f>>a[i];
for (i = 0; i < n; i++)
{ if (k == 0) cand = a[i], k = 1;
else if (a[i] == cand) k++; else k--;
if (cand < 0) g<<-1;
}
for (int i = 0; i < n; i++)
if (a[i] == cand) nr++;
if (nr <= n / 2) g<<-1; else g<<cand<<' '<<nr<<endl;
g.close(); return 0;
}