Cod sursa(job #929569)

Utilizator swim406Teudan Adina swim406 Data 27 martie 2013 09:18:57
Problema Elementul majoritar Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>
#include <algorithm>
#define nmax 1000001

using namespace std;

int a[nmax], cand = -1, k, nr;

int main(){
    int N;
    freopen ("elmaj.in", "r", stdin);
    freopen ("elmaj.out", "w", stdout);
    scanf ("%d", &N);
    for (int i = 1; i <= N; ++i) {
        scanf ("%lld", &a[i]);
        if (k == 0) {
            cand = a[i];
            ++k;
        }
        else if (a[i] == cand)
            --k;
        else ++k;
    }
    if (cand < 0) printf ("-1");
    else {
        for (int i= 1; i <= N; ++i)
            if (a[i] == cand)
                ++nr;
        if (nr > N/2) printf ("%d %d", cand, nr);
        else printf ("-1");
    }
    return 0;
}