Cod sursa(job #2009991)

Utilizator basilescubasil basilescu basilescu Data 11 august 2017 14:08:41
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>

using namespace std;

const int n_MAX = 1000000;
int v[n_MAX], n;

int main() {
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    
    scanf("%d", &n);

    int val = -1, contor = 0;

    for(int i = 0; i < n; i++) {
        scanf("%d", &v[i]);

        if(v[i] == val) {
            contor++;
        } else if(contor <= 0) {
            val = v[i];
            contor = 1;
        } else {
            contor--;
        }
    }

    contor = 0;
    for(int i = 0; i < n; i++) {
        if(v[i] == val) contor++;
    }

    if(contor > n / 2) {
        printf("%d %d\n", val, contor);
    } else {
        printf("-1");
    }

    return 0;
}