Cod sursa(job #925963)

Utilizator PatrikStepan Patrik Patrik Data 24 martie 2013 20:55:10
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
    #include<fstream>
    using namespace std;
    #define MAX 1000001
    int N , v[MAX],cand,k,nr;

    int main()
    {
        ifstream f("elmaj.in");
        ofstream g("elmaj.out");
        f>>N;
        for(int i = 1 ; i <= N ; ++i )
            f>>v[i];
        for( int i = 1 ; i <= N ; ++i )
        {
            if(k == 0)
            {
                cand = v[i];
                k = 1;
            }
            else
                if(cand == v[i])k++;
                else k--;
        }
        if(k==0)g<<-1;
        else{
            for(int i = 1 ; i <= N ; ++i)
                if(v[i] == cand)nr++;
            if(nr >= N/2+1)
                g<<cand<<" "<<nr;
            else
                g<<-1;
        }
        f.close();
        g.close();
        return 0;
    }