Cod sursa(job #1157678)

Utilizator DanielRusuDaniel Rusu DanielRusu Data 28 martie 2014 18:43:51
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

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

int st, v[1000001], i, n, nr;

int main() {
    fin >> n;

    for(i = 1;i <= n;i++) {
        fin >> v[i];
        if(st == v[i] && nr > 0) nr++;
        else {
            if(nr == 0) {
                st = v[i];
                nr = 1;
            }
            else {
                nr--;
            }
        }
    }

    if(nr > 0) {
        nr = 0;

        for(i = 1;i <= n;i++) {
            if(v[i] == st) nr++;
        }

        if(nr >= n / 2 + 1) fout << st << ' ' << nr << '\n';
        else fout << "-1\n";
    }
    else fout << "-1\n";

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

    return 0;
}