Cod sursa(job #2237891)

Utilizator dragos192k1Dragos-Iulian Galeteanu dragos192k1 Data 3 septembrie 2018 19:57:47
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>

using namespace std;

int n, cand, k, nr, v[1000005];

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

    scanf("%d", &n);

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

    fclose(in);

    cand = -1;

    for (int i = 1; i <= n; ++i) {
        if (!k) {
            cand = v[i];
            k = 1;
        } else if (v[i] == cand) ++k;
               else --k;
    }

    for (int i = 1; i <= n; ++i)
        if (v[i] == cand) ++nr;

    if (nr > n/2) {
        printf("%d %d", cand, nr);
        fclose(out);
        return 0;
    }
    else {
        printf("%d", -1);
        fclose(out);
        return 0;
    }
}