Cod sursa(job #1367395)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 1 martie 2015 20:38:30
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int maxn = 1000005;

int n, best, cnt = -1, a[maxn];

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