Cod sursa(job #1797651)

Utilizator ArambasaVlad Arambasa Arambasa Data 4 noiembrie 2016 18:06:59
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
using namespace std;
const int NMax=1e6+5;
ifstream in ("elmaj.in");
ofstream out ("elmaj.out");
int n,v[NMax],voturi,vot,candidat;
void Read()
{
    in>>n;
    in>>v[1];
     candidat=1;
     vot =1;
}
void Solve()
{
    for (int i=2;i<=n;i++)
    {
        in>>v[i];
        if (v[candidat]==v[i])
        {
            vot++;
        }
        else
        {
            vot--;
        }
        if (!vot)
        {
            candidat=i;
            vot=1;
        }
    }
    voturi=0;
    for (int i=1;i<=n;i++)
    {
        if (v[i]==v[candidat])
            voturi++;
    }
}
void Print()
{
    if (voturi>n/2)
    {
        out<<v[candidat]<<' '<<voturi;
    }
    else
    {
        out<<-1;
    }
}
int main()
{
    Read();
    Solve();
    Print();
}