Cod sursa(job #1167593)

Utilizator tudorv96Tudor Varan tudorv96 Data 5 aprilie 2014 15:21:41
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
using namespace std;

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

const int N = 1e6;

int v[N], n;

int main() {
    fin >> n;
    int elem = -2e9, nr = 0;
    for (int i = 0; i < n; ++i) {
        fin >> v[i];
        if (!nr) {
            elem = v[i];
            nr = 1;
        }
        else {
            if (elem == v[i])
                nr++;
            else
                nr--;
        }
    }
    if (elem == -2e9) {
        fout << -1;
        return 0;
    }
    nr = 0;
    for (int i = 0; i < n; ++i)
        if (v[i] == elem)
            nr++;
    if (nr > n / 2)
        fout << elem;
    else
        fout << -1;
}