Cod sursa(job #1609231)

Utilizator paulstepanovStepanov Paul paulstepanov Data 22 februarie 2016 17:58:28
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream  fin("elmaj.in");
ofstream fout("elmaj.out");

const int NMax = 1000005;
int Candidat,Nr,k,N,X[NMax];

void ReadandSolveandPrint()
{
    fin>>N;

    for(int i = 1; i <= N; ++i)
        {
            fin>>X[i];
        }

    for(int i = 1; i <= N; ++i)
        {
            if(k == 0)
                {
                    Candidat = X[i];
                    k = 1;
                }
            else
                if(Candidat!=X[i])
                    k--;
                else
                    k++;
        }

    for(int i = 1; i <= N; i++)
        {
            if(X[i] == Candidat)
                Nr++;
        }

    if(Nr > (N/2))
        fout<<Candidat<<" "<<Nr<<"\n";
    else
        fout<<"-1\n";
}



int main()
{
    ReadandSolveandPrint();
    return 0;
}