Cod sursa(job #1167657)

Utilizator florin.elfusFlorin Elfus florin.elfus Data 5 aprilie 2014 17:37:20
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>

int x[1000100];

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

    int n;
    scanf("%d", &n);

    int best, freq = 1;
    scanf("%d", &x[1]);
    best = x[1];
    for (int i = 2; i <= n; ++i) {
        scanf("%d", &x[i]);
        if (x[i] == best)
            ++freq;
        else {
            --freq;
            if (freq == 0) {
                best = x[i];
                freq = 1;
            }
        }
    }

    int cnt = 0;
    for (int i = 1; i <= n; ++i)
        if (x[i] == best)
            ++cnt;
    if (cnt >= n / 2 + 1)
        printf("%d %d", best, cnt);
    else
        printf("-1");

    return 0;
}