Cod sursa(job #1060683)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 18 decembrie 2013 13:54:46
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.75 kb
#include <cstdio>

int N, val;
int elem, contor;
int v[1000001];

int main()
{
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);

    scanf("%d", &N);

    for ( int i = 1; i <= N; ++i )
    {
        scanf("%d", &val);
        v[i] = val;

        if ( val != elem )
                contor--;
        else
                contor++;

        if ( contor < 1 )
        {
            elem = val;
            contor++;
        }
    }

    contor = 0;

    for ( int i = 1; i <= N; ++i )
    {
        val = v[i];

        if ( val == elem )
                contor++;
    }

    if ( contor >= N/2 + 1 )
            printf("%d %d\n", elem, contor);
    else
            printf("-1\n");

    return 0;
}