Cod sursa(job #829533)

Utilizator Aida_SilviaStrimbeanu Aida Silvia Aida_Silvia Data 5 decembrie 2012 16:24:24
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 kb
#include<cstdio>
#include<vector>
using namespace std;

const int MAXN=1000001;

vector <pair <int,int> > Hash[MAXN];
int elmaj,v[MAXN],i,n,Max;

int search (int el)
{
    vector <pair <int,int> > :: iterator it;
    int  ind=el%666013;

    for (it=Hash[ind].begin();it!=Hash[ind].end();it++)
        if (it->first==el)
            return 1;

        return 0;
}

void inserare(int el)
{
    vector <pair <int,int> > :: iterator it;
    int  ind=el%666013;

    if (search(el)==0) Hash[ind].push_back(make_pair (el,1));

        else
            for(it=Hash[ind].begin();it<=Hash[ind].end();it++)
                if (it->first==el)
                {
                    it->second++;
                    if (Max<it->second)
                      {
                         Max=it->second;
                         elmaj=el;
                      }
                    break ;
                }
}

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

    scanf("%d",&n);

    for (i=1;i<=n;i++)
       {
           scanf("%d",&v[i]);
           inserare(v[i]);
       }


    printf ("%d %d",elmaj,Max);

    return 0;
}