Cod sursa(job #992757)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 2 septembrie 2013 15:53:26
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <vector>

int main(){
    std::ifstream fin("elmaj.in");
    std::ofstream fout("elmaj.out");

    unsigned n;
    fin>>n;
    std::vector<unsigned> vec(n);
    for(unsigned i=0;i<n;++i) fin>>vec[i];

    unsigned curr=0,k=0;
    for(unsigned i=0;i<n;++i)
        if(k==0){
            curr=vec[i];
            k=1;
        }
        else if(vec[i]==curr) ++k;
        else --k;


    k=0;
    for(unsigned i=0;i<n;++i) if(vec[i]==curr) ++k;

    if(k>n/2) fout<<curr<<'\n';
    else fout<<"-1\n";
}