Cod sursa(job #1619146)

Utilizator paulstepanovStepanov Paul paulstepanov Data 28 februarie 2016 13:12:33
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

const int Nmax=1000005;
int a[1000005],n,k,i,Candidat,Nr;

void Read()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>a[i];
}

void Solve()
{
    for(i=1;i<=n;i++)
    {
        if(k==0)
            {Candidat=a[i];
            k=1;
            }
        else
            if(Candidat!=a[i])
            k--;
        else k++;
    }
    for(i=1;i<=n;i++)
        if(a[i]==Candidat)
        Nr++;
}

void Print()
{
    if(Nr>=n/2+1) fout<<Candidat<<" "<<Nr;
    else fout<<"-1";
}

int main()
{
    Read();
    Solve();
    Print();
}