Cod sursa(job #1513494)

Utilizator ScorpionSpannerNedelcu Gabriel ScorpionSpanner Data 29 octombrie 2015 17:09:22
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
/**
    Problem: Majoritar
    Source: Pbinfo
    Author: Nedelcu Gabriel @ScorpionSpanner
*/

#include <bits/stdc++.h>

using namespace std;

FILE *fin=fopen("elmaj.in","r");
ofstream fout("elmaj.out");

int n, v[1000000];

void readData()
{
    int i;
    fscanf(fin, "%d", &n);
    for(i=0;i<n;i++)
        fscanf(fin, "%d", &v[i]);
}

int solve()
{
    sort(v, v+ n);
    int i, j, nr=0;
    i=0;
    while(i < n)
    {
        j=i;
        nr=0;
            while(v[i]==v[j+1]&&j<n)
                {j++; nr++;}
            nr++;
            if(nr >= n/2 + 1)
                {fout<<v[i]<<" "<<nr; return 0;}
        i = j+1;
    }
    fout<<"-1";
    return 1;

}

int main()
{
    readData();
    solve();
  return 0;
}