Cod sursa(job #677728)

Utilizator elfusFlorin Chirica elfus Data 10 februarie 2012 16:25:41
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>

int X[1000100];

int main ()
{
    int i, N, best = 0, frec = 1;

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

    scanf ("%d", &N);
    for (i = 1; i <= N; i ++)
    {
        scanf ("%d", &X[i]);
        if (X[i] == best)
            frec ++;
        else
        {
            frec --;
            if (frec == 0)
                best = X[i], frec = 1;
        }
    }

    frec = 0;
    for (i = 1; i <= N; i ++)
        if (X[i] == best)
            frec ++; //poate u
    if (frec >= N / 2 + 1)
        printf ("%d %d", best, frec);
    else
        printf ("-1");
    return 0;
}