Cod sursa(job #1866151)

Utilizator EuAlexOtaku Hikikomori EuAlex Data 2 februarie 2017 18:14:06
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <cstdio>

using namespace std;

int v[1000005];

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

    int n, candidat, nr_apr;

    scanf("%d", &n);
    for(int i = 1; i <= n; ++ i) {
        scanf("%d", &v[i]);
        if(i == 1) {
            candidat = v[i];
            nr_apr = 1;
        } else {
            if(v[i] != candidat) {
                if(nr_apr == 1) {
                    candidat = v[i];
                } else {
                    -- nr_apr;
                }
            } else {
                ++ nr_apr;
            }
        }
    }

    nr_apr = 0;
    for(int i = 1; i <= n; ++ i) {
        if(v[i] == candidat) {
            ++ nr_apr;
        }
    }

    if(nr_apr >= n / 2 + 1) {
        printf("%d %d", candidat, nr_apr);
    } else {
        printf("-1");
    }

    return 0;
}