Cod sursa(job #1092748)

Utilizator IonSebastianIon Sebastian IonSebastian Data 27 ianuarie 2014 13:18:28
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

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

const int MAX_N = 1000000;

int v[MAX_N];

int main()
{
    int n, i, elmaj, nrap, nrapf = 0;
    in >> n;
    in >> v[0];
    elmaj = v[0];
    nrap = 1;
    for(i = 1; i < n; i++){
        in >> v[i];
        if(nrap == 0){
            elmaj = v[i];
            nrap = 1;
        } else {
            if(v[i] == elmaj){
                nrap++;
            } else {
                nrap--;
            }
        }
    }
    for(i = 0; i < n; i++){
        if(v[i] == elmaj){
            nrapf++;
        }
    }
    if(nrapf >= n/2+1){
        out << elmaj << " " << nrapf;
    } else {
        out << -1;
    }
    return 0;
}