Cod sursa(job #846690)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 2 ianuarie 2013 17:14:30
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>

using namespace std;

ifstream f("elmaj.in");
ofstream g("elmaj.out");

int n,v[1000005],maj,cati,nr;

int main()
{
    int i;
    f>>n;
    cati=0; maj=-1;
    for(i=1;i<=n;++i)
    {
        f>>v[i];
        if(cati==0) maj=v[i], cati=1;
        else if(v[i]==maj) ++cati;
             else --cati;
    }
    if(cati>0)
    {
        for(i=1;i<=n;++i) if(v[i]==maj) ++nr;
        if(nr>n/2) g<<maj<<' '<<nr<<'\n';
        else g<<"-1\n";
    }
    else g<<"-1\n";
    f.close(); g.close();
    return 0;
}