Cod sursa(job #1167567)

Utilizator Kira96Denis Mita Kira96 Data 5 aprilie 2014 14:53:14
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb

#include<fstream>
#define N 1000000
#define FOR(a,b,c) for(int a=b;a<=c;a++)
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int v[N],n,cand,nrc;
int main ()
{
    f>>n;
    FOR(i,1,n)
    f>>v[i];
    cand=0;
    nrc=0;
    FOR(i,1,n)
    {
        if(!cand)
        {
            cand=v[i];
            nrc=1;
        }
        else
        if(v[i]==cand)
        nrc++;
        else
            nrc--;
        if(!nrc)
            cand=0;
    }
    nrc=0;
    FOR(i,1,n)
    if(v[i]==cand)
        nrc++;
    if(nrc>n/2)
        g<<cand;
    else
    g<<"-1";
    return 0;
}