Cod sursa(job #1167275)

Utilizator RarRaresNedelcu Rares RarRares Data 4 aprilie 2014 18:42:22
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#define nmax 1000002

using namespace std;

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


int n, a[nmax];

void citire(){
    fin >> n;
    for(int i = 1; i <= n; ++i)
        fin >> a[i];
}

int calcul(){
    int c = -1, nr = 0;
    for(int i = 1; i <= n; ++i){
        if(nr == 0){
            c = a[i];
            nr = 1;
            continue;
        }
        if(c == a[i]){
            nr++;
            continue;
        }

        nr--;
    }


    int nr_aparitii = 0;
    for(int i = 1; i <= n; ++i)
        if(a[i] == c)
            nr_aparitii++;

    if(nr_aparitii > n/2)
        return c;
    else
        return -1;
}

int main()
{

    citire();
    fout << calcul();
    return 0;
}