Cod sursa(job #1340241)

Utilizator Athena99Anghel Anca Athena99 Data 11 februarie 2015 18:18:03
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>

using namespace std;

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

const int nmax= 1000000;

int v[nmax+1];

int main(  ) {
    int n;
    fin>>n;
    for ( int i= 1; i<=n; ++i ) {
        fin>>v[i];
    }

    int elem= -1, k= 0;
    for ( int i= 1; i<=n; ++i ) {
        if ( k==0 ) {
            elem= v[i], ++k;
        } else if ( elem==v[i] ) {
            ++k;
        } else {
            --k;
        }
    }

    k= 0;
    for ( int i= 1; i<=n; ++i ) {
        if ( v[i]==elem ) {
            ++k;
        }
    }

    if ( k>=n/2+1 ) {
        fout<<elem<<" "<<k<<"\n";
    } else {
        fout<<"-1\n";
    }

    return 0;
}