Cod sursa(job #1082568)

Utilizator Dayanna000Amegica Dayanna Dayanna000 Data 14 ianuarie 2014 19:35:06
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define nr 666013
vector <pair <int,int> > v[nr];
int main()
{
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");
    int n,i,j,x,ok,aparitie,elem,zona,ap=-6;
    f>>n;
    aparitie=n/2+1;
    for(i=1;i<=n;++i)
      {
          f>>x;
          zona=x%nr;
          int ok=0;
          for(j=0;j<v[zona].size();++j)
            if(v[zona][j].first==x)
                {
                    ok=1;
                    v[zona][j].second++;
                    if(v[zona][j].second>=aparitie)
                      {
                          ap=v[zona][j].second;
                          elem=x;
                      }
                }
          if(ok==0)
             v[zona].push_back(make_pair(x,1));
      }
    if(ap!=-6)
       g<<elem<<"  "<<ap;
       else
       g<<"-1";
    f.close();
    g.close();
    return 0;
}