Cod sursa(job #1167688)

Utilizator florin.elfusFlorin Elfus florin.elfus Data 5 aprilie 2014 18:50:14
Problema Elementul majoritar Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

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

    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.seekg( 0 );

    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;
}