Cod sursa(job #1010068)

Utilizator timicsIoana Tamas timics Data 14 octombrie 2013 11:20:34
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
#include<iostream>
#include<map>
using namespace std;

int N,cand=-1,k=0,a[1000100];

map<int,int> M;

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

    fin>>N;
    for(int i=0;i<N;++i)
    {
        fin>>a[i];
        if(k==0)
        {
            cand=a[i];
            ++k;
        }

        else if (a[i] == cand)
            ++k;

        else
            --k;
    }

    k=0;
    for(int i=0;i<N;++i)
    {
        if (a[i] == cand)
            ++k;
    }

    if(k>N/2)
        fout<<cand<<" "<<k<<endl;
    else
        fout<<-1<<endl;

    return 0;
}