Cod sursa(job #1612446)

Utilizator edi_laitinLaitin Eduard edi_laitin Data 24 februarie 2016 20:57:37
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <algorithm>
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];
        }
    sort(X+1,X+N+1);
}

void SolveandPrint()
{
    int Candidat,k = 0;
    int i,Nr = 0;

    for(i = 1; i <= N; i++)
        {
            if(k == 0)
                {
                    Candidat = X[i];
                    k=1;
                }
            else
                if(X[i]==Candidat)
                    k++;
                else
                    k--;
        }

    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;
}