Cod sursa(job #1001511)

Utilizator alexx.cosmaCosma Cristian Alexandru alexx.cosma Data 25 septembrie 2013 10:47:49
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int nMax = 1000000;
int s[nMax];

int main()
{
    int n, maj;
    fin >> n;
    maj = n/2 +1;

    for(int i=0;i<n;i++)
        fin >> s[i];

    int nrAp=1;
    int cMax = s[0];

    for(int i=1;i<n;i++){

        if(s[i] == cMax){
            nrAp++;
        }
        else{
            nrAp--;
            if(nrAp==0){
                cMax = s[i];
                nrAp=1;
            }
        }
    }
    nrAp=0;
    for(int i=0; i<n; i++)
        if(s[i]==cMax)
            nrAp++;

    if(nrAp>=maj)
        fout<< cMax << ' ' << nrAp << '\n';
    else
        fout << -1 << '\n';


    return 0;
}