Cod sursa(job #1769583)

Utilizator matei8787Matei Dobrea matei8787 Data 2 octombrie 2016 19:43:34
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<cstdio>
int v[1000007];
int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    int n,m,i,cand,s=1,l=0;
    scanf("%d",&n );
    for ( i = 1 ; i <= n ; i++ ){
        scanf("%d",&m );
        v[i] = m;
    }
    cand = v[1];
    for ( i = 2 ; i <= n ; i++ ){
        if ( cand == v[i] && s != 0 )
            s++;
        else
            if ( cand != v[i] && s != 0 )
                s--;
        else
            if ( s == 0 ){
                cand = v[i];
                s = 1;
            }
    }
    for ( i = 1 ; i <= n ; i++ ){
        if ( v[i] == cand )
            l++;
    }
    if ( l > n/2 )
        printf("%d %d",cand,l);
    else
        printf("%d",-1);
}