Cod sursa(job #2340301)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 10 februarie 2019 11:16:40
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <cstdio>
#include <unordered_map>

using namespace std;

int v[1000005], pos = 655536;
char buff[655536];

inline char getChar()
{
    if(pos == 655536)
    {
        fread(buff, 1, 655536, stdin);
        pos = 0;
    }
    return buff[pos++];
}

inline int readInt()
{
    int nr = 0;
    char ch = getChar();
    while(1)
    {
        if(ch == ' ' || ch == '\n')
        {
            return nr;
        }
        nr = nr * 10 + (ch - '0');
        ch = getChar();
    }
    return nr;
}

unordered_map <int, int> fr;

int main()
{
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);

    int n;
    n = readInt();

    for(int i = 1; i <= n; ++i)
    {
        int x;
        x = readInt();

        if(fr.find(x) == fr.end())
            fr[x] = 1;
        else fr[x]++;
    }

    for(auto it : fr)
    {
        if(it.second > n / 2)
        {
            printf("%d %d\n", it.first, it.second);
            return 0;
        }
    }
    printf("%d\n", -1);
    return 0;
}