Cod sursa(job #1612403)

Utilizator edi_laitinLaitin Eduard edi_laitin Data 24 februarie 2016 20:39:44
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 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 Max = 0,Sol;

    int i,Nr = 1;

    for(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[i-1];
        Nr = 1;
    }


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

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