Cod sursa(job #1254338)

Utilizator bciobanuBogdan Ciobanu bciobanu Data 2 noiembrie 2014 15:57:45
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.16 kb
#include <cstdio>
#include <vector>
using namespace std;
const int DIM = 100000;
char buff[DIM];
int poz = 0;
void fastRead_int(int &numar)
{
     numar = 0;
     //cat timp caracterul din buffer nu e cifra ignor
     while (buff[poz] < '0' || buff[poz] > '9')
          //daca am "golit" bufferul atunci il umplu
          if (++poz == DIM)
               fread(buff,1,DIM,stdin),poz=0;
     //cat timp dau de o cifra recalculez numarul
     while ('0'<=buff[poz] && buff[poz]<='9')
     {
          numar = numar*10 + buff[poz] - '0';
          if (++poz == DIM)
               fread(buff,1,DIM,stdin),poz=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;
}