Cod sursa(job #633834)

Utilizator AndrewTheGreatAndrei Alexandrescu AndrewTheGreat Data 14 noiembrie 2011 22:18:40
Problema Elementul majoritar Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>

const int nmax = 1000001;
int N, V[nmax];

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

    int i;
    scanf("%d", &N);
    for(i = 1; i <= N; i++)
        scanf("%d", V + i);

    int nr, cat = 0;
    nr = V[1];
    for(i = 2; i <= N; i++)
    {
        if(V[i] == nr)
            cat++;
        else cat--;

        if(cat < 0)
            cat = 1, nr = V[i];
    }

    cat = 0;
    for(i = 1; i <= N; i++)
        cat += (V[i] == nr);

    if(cat > (N >> 1))
        printf("%d %d\n", nr, cat);
    return 0;
}