Cod sursa(job #1688733)

Utilizator razvan242Zoltan Razvan-Daniel razvan242 Data 13 aprilie 2016 18:17:42
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 1e6 + 1;

ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

int n, a[NMAX];

int main()
{
    fin >> n;
    int curr = -1, ap = 0;
    for (int i = 1; i <= n; ++i) {
        fin >> a[i];
        if (ap == 0) {
            curr = a[i];
            ap = 1;
        }
        else
            if (a[i] == curr)
                ++ap;
            else
                --ap;
    }
    ap = 0;
    for (int i = 1; i <= n; ++i)
        if (a[i] == curr)
            ++ap;
    if (ap >= 1 + n / 2)
        fout << curr << ' ' << ap << '\n';
    else
        fout << "-1\n";

    fin.close();
    fout.close();
    return 0;
}