Cod sursa(job #1076948)

Utilizator lorundlorund lorund Data 10 ianuarie 2014 19:02:30
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.65 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 (v[i]==maj){
            ++c;
        }
        else{
            if (c){
                --c;
            }
            else{
                maj = v[i];
                c = 1;
            }
        }
    }

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

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