Cod sursa(job #1775843)

Utilizator LizaSzabo Liza Liza Data 10 octombrie 2016 19:10:24
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;

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

const int NMax = 1000005;
int N,X[NMax];

void Read()
{
  fin>>N;
  for(int i = 1; i <= N; ++i)
    fin>>X[i];
}

void SolveandPrint()
{
  int Candidat,Nr = 0;
  for(int i = 1 ; i <= N; ++i)
    {
      if(Nr == 0)
        {
          Candidat = X[i];
          Nr = 1;
        }
      else
        if(X[i] == Candidat)
          {
            Nr++;
          }
        else
          {
            Nr--;
          }
    }
  Nr = 0;
  for(int i = 1 ; i <= N; ++i)
    if(X[i]==Candidat)
      Nr++;
  if(Nr > N/2)
    fout<<Candidat<<" "<<Nr<<"\n";
  else
    fout<<"-1\n";
}

int main()
{
    Read();
    SolveandPrint();
    return 0;
}