Cod sursa(job #2220974)

Utilizator inquisitorAnders inquisitor Data 12 iulie 2018 21:50:59
Problema Elementul majoritar Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <cstdio>

char inBuffer[0x1000000];

size_t p = 0x0;

__attribute__((always_inline)) size_t get_number()
{
    size_t number = 0x0;

    while(0x2F < inBuffer[p])
    {
        number = number * 0xA + inBuffer[p] - 0x30;

        ++p;
    }

    ++p;

    return number;
}

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

    freopen("elmaj.out", "w", stdout);

    fread(inBuffer, 0x1, 0x1000000, stdin);

    size_t N = get_number(), x, candidate, unpaired = 0;

    for(size_t i = -~N; --i;)
    {
        x = get_number();

        unpaired || (candidate = x, unpaired = 0x1);

        unpaired += (x == candidate);

        unpaired -= (x != candidate);
    }

    unpaired = p = 0x0;

    freopen("elmaj.in", "r", stdin);

    fread(inBuffer, 0x1, 0x1000000, stdin);

    for(size_t i = -~N; --i;)
    {
        unpaired += get_number() == candidate;
    }

    printf(unpaired > N >> 1 ? "%d %d" : "-1", candidate, unpaired);

    return 0x0;
}