Cod sursa(job #1254322)

Utilizator bciobanuBogdan Ciobanu bciobanu Data 2 noiembrie 2014 15:44:48
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include <cstdio>
#include <vector>
using namespace std;

inline void fastRead_int(int &x)
{
    register int c = getchar();
    x = 0;
    int neg = 0;

    for(; ((c<48 || c>57) && c != '-'); c = getchar());

    if(c=='-')
    {
        neg = 1;
        c = getchar();
    }

    for(; c>47 && c<58 ; c = getchar())
    {
        x = (x<<1) + (x<<3) + c - 48;
    }

    if(neg)
        x = -x;
}

inline void fastRead_string(char *str)
{
    register char c = 0;
    register int i = 0;

    while (c < 33)
        c = getchar();

    while (c != '\n')
    {
        str[i] = c;
        c = getchar();
        i = i + 1;
    }

    str[i] = '\0';
}

int main()
{

    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    vector <int> V;
    int n, i, p = 0, c, X;
    fastRead_int(n);
    for(i = 0; i < n; ++i)
    {
        fastRead_int(X);
        V.push_back(X);
        if(!p)
            c = X, p = 1;
        else if(X == c)
            ++p;
        else
            --p;
    }
    p = 0;
    for(vector<int> :: iterator it = V.begin(); it != V.end(); ++it)
        if(*it == c)
            ++p;
    printf("%d %d\n", c, p);
    return 0;
}