Cod sursa(job #992766)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 2 septembrie 2013 15:59:12
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 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<<' '<<k<<'\n';
    else fout<<"-1\n";
}