Cod sursa(job #2154182)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 6 martie 2018 19:14:08
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define MAXN 1000005

using namespace std;

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

int n,v[MAXN];

void cit(){
    in>>n;
    for(int i = 0 ; i < n; i++)
        in>>v[i];
}
void rez(){
    int cnt = 0,maxim,nrapp = 0;
    bool ok = false;
    sort(v,v+n);

    for(int i = 0; i < n && !ok; i ++){
        if(!i || v[i] == v[i-1]){
            cnt++;
            if(cnt >= n/2 + 1){
                maxim = v[i];
                nrapp = cnt;
            }
        }
        if(v[i] != v[i-1] && cnt >= n/2 + 1)
            ok = true;
        if(v[i] != v[i-1])
            cnt = 1;
    }
    if(!ok && v[n-1] == maxim && nrapp >= n/2 + 1)
        ok = true;
    if(ok)
        out<<maxim<<" "<<nrapp;
    else
        out<<-1;
}

int main()
{
    cit();
    rez();
    return 0;
}