Cod sursa(job #2035823)

Utilizator CriogeniXBociat Daniel Tiberiu CriogeniX Data 9 octombrie 2017 20:50:45
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int a[100000],N,num;
void Read()
{
    in>>N;
    for(int i=0;i<N;i++)
        in>>a[i];
}

int Majority()
{
    int ok = -1;
    sort(a,a+N);
    int i = 0;
    while (i < N)
    {
          int j = i;
          while (j < N && a[j + 1] == a[i])
              j++;
          if(j-i+1 >= N/2+1)
          {
              ok=a[i];
              num=j-i+1;
          }
          i = j + 1;
    }
    return ok;
}
int main()
{
    Read();
    if(Majority()==-1)
        out<<'-1';
    else
        out<<Majority()<<' '<<num;
    return 0;
}