Cod sursa(job #1262043)

Utilizator CalinCojoFMI Cojocaru Calin George CalinCojo Data 12 noiembrie 2014 22:23:48
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.8 kb
#include <iostream>
#include <fstream>
// gasirea elementului majoritar ( >n/2) dintr-un vector nesortat
using namespace std;

int main()
{
    long int n,nr_aparitii=0, contor=1,el_maj,i,v[100000],max_aparitii=1;
    ifstream f("elmaj.in",ios::in);
    ofstream g("elmaj.out",ios::out);
    f>>n;
    for(i=1;i<=n;i++){
        f>>v[i];
    }
    for(i=1;i<=n;i++){
        if(v[i]==v[max_aparitii])
            contor++;
        else
            contor--;
        if(contor==0){
            max_aparitii=i;
            contor=1;
        }
    }
     for(i=1;i<=n;i++)
        if(v[i]==v[max_aparitii])
            nr_aparitii++;

        if(nr_aparitii>=n/2+1){
            g<<v[max_aparitii]<<" "<<nr_aparitii;
        }
        else{
            g<<"-1";
        }
    return 0;
}