Cod sursa(job #1167681)

Utilizator florin.elfusFlorin Elfus florin.elfus Data 5 aprilie 2014 18:40:34
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;

int main() {
    fstream fin;
    ofstream fout("elmaj.out");
    fin.open("elmaj.in");
    int n, x;
    fin >> n;

    int best, freq = 1;
    fin >> x;
    best = x;
    for (int i = 2; i <= n; ++i) {
        fin >> x;
        if (x == best)
            ++freq;
        else {
            --freq;
            if (freq == 0) {
                best = x;
                freq = 1;
            }
        }
    }

    fin.close();
    fin.open( "elmaj.in" );

    fin >> n;

    int cnt = 0;
    for (int i = 1; i <= n; ++i) {
        fin >> x;
        if (x == best)
            ++cnt;
    }
    if (cnt >= n / 2 + 1)
        fout << best << " " << cnt;
    else
        fout << "-1";

    fin.close();
    fout.close();

    return 0;
}