Cod sursa(job #1071873)

Utilizator ELHoriaHoria Cretescu ELHoria Data 3 ianuarie 2014 17:01:34
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.57 kb
#include <fstream>
 
using namespace std;
 
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
 
int v[1000001] , N;
 
void solve()
{
    int k = 0 , cand = -1 , nr = 0;
    for(int i = 0;i<N;++i)
        if(!k)
            cand = v[i] , k = 1;
        else
            k += ( v[i] == cand ? 1 : -1);
 
    for(int i = 0;i<N;++i)
        nr+= v[i] == cand;
    if(nr > N/2)
        fout<<cand<<" "<<nr<<'\n';
    else
        fout<<-1<<'\n';
}
 
int main()
{
    fin>>N;
    for(int i = 0;i<N;++i)
        fin>>v[i];
 
    solve();
    return 0;
}