Cod sursa(job #1833161)

Utilizator Ioana_AndreeaCristescu Ioana Ioana_Andreea Data 21 decembrie 2016 20:16:01
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
using namespace std;

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

const int NMax = 1000000;
int N,Candidat,Nr,NrSol;
int A[NMax + 5];

int main()
{
    fin >> N;
    for(int i = 1; i <= N; ++i)
      fin >> A[i];

    Candidat = -1;

    for(int i = 1; i <= N; ++i)
      if(Nr == 0)
        {
        Candidat = A[i];
        Nr = 1;
        }
      else
        if(Candidat == A[i])
          Nr++;
        else
          Nr--;

    for(int i = 1; i <= N; ++i)
      if(A[i] == Candidat)
        NrSol++;

    if(NrSol >= N/2 + 1)
      fout << Candidat << " " << NrSol << "\n";
    else
      fout << "-1\n";

    return 0;
}