Cod sursa(job #1074533)

Utilizator lorundlorund lorund Data 7 ianuarie 2014 18:47:42
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

using namespace std;

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

int main()
{
    int N;
    int *v = new int[1000001];
    int maj=-1, c=0;

    in >> N;
    for (int i=0; i<N; ++i){
        in >> v[i];
        if (!c){
            maj = v[i];
        }
        else if (v[i]==maj){
            ++c;
        }
        else{
            --c;
        }
    }

    c = 0;
    for (int i=0; i<N; ++i){
        c += v[i]==maj;
    }

    if (c>=N/2+N%2)
        out << maj;
    else
        out << -1;
    out.close();
    return 0;
}