Cod sursa(job #1217412)

Utilizator Cristian1997Vintur Cristian Cristian1997 Data 7 august 2014 12:38:06
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
using namespace std;
#include <fstream>
ifstream fin("elmaj.in");
const int Nmax = 1000000;

int v[Nmax];

int main()
{
    int i, n, val = 0, nr = 0, ok;
    fin >> n;
    for(i = 0; i < n; ++i)
    {
        fin >> v[i];
        if(v[i] == val) ++nr;
        else if(nr) --nr;
        else val = v[i], nr = 1;
    }
    if(nr)
    {
        for(i = nr = 0; i < n; ++i)
            if(v[i] == val) ++nr;
        if(nr >= 1 + n / 2) ok = 1;
        else ok = 0;
    }
    else ok = 0;
    
    ofstream fout("elmaj.out");
    if(!ok) fout << "-1\n";
    else fout << val << ' ' << nr << '\n';
    fout.close();
    return 0;
}