Cod sursa(job #1763747)

Utilizator Dan_RadulescuRadulescu Dan Dan_Radulescu Data 24 septembrie 2016 16:09:59
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n,a[1000001],i,j,nr,candidat;
int main(){
    fin>>n;
    for (i=1;i<=n;i++)
        fin>>a[i];
    candidat=-1;nr=0;
    for (i=1;i<=n;i++)
      if (nr==0){
         candidat=a[i];
         nr=1;
      }
        else
            if (candidat==a[i]) nr++;
               else
                nr--;
    if (candidat<0){
        fout<<"-1";
        fin.close();
        fout.close();
        return 0;
    }
    nr=0;
    for (i=1;i<=n;i++)
        if (candidat==a[i]) nr++;
    if (nr>n/2) fout<<candidat<<" "<<nr;
      else
        fout<<"-1";
    fin.close();
    fout.close();
    return 0;
}