Cod sursa(job #1642056)

Utilizator cristiana.berceaBercea Cristiana cristiana.bercea Data 9 martie 2016 12:27:06
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 Sol,Max,N,X[NMax];

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

void SolveandPrint()
{
    sort(X+1,X+N+1);
    int Nr = 1;
    Sol = 1;

    for(int i = 2; i <= N; ++i)
        {
            if(X[i] == X[i-1])
                Nr++;
            else
                {
                    if(Nr > Max)
                    {
                        Max = Nr;
                        Sol = X[i-1];
                    }
                    Nr = 1;
                }
        }

    if(Nr > Max)
    {
        Max = Nr;
        Sol = X[N];
        Nr = 1;
    }
    if(Max > (N/2) )
        fout<<Sol<<" "<<Max<<"\n";
    else
        fout<<"-1\n";
}

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