Cod sursa(job #781636)

Utilizator my666013Test Here my666013 Data 24 august 2012 19:35:26
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
#define Mod 666013

vector<int>v[Mod];
int n;

void elmaj(int p)
{   int k = v[p].size(), nr = 1;
    sort(v[p].begin(),v[p].end());
    for(int i=1;i<k;i++)
    {
        if( v[p][i] == v[p][i-1] )nr++; else
        {
            if( nr > n/2 )
            {
                printf("%d\n",v[p][i]);
                return ;
            }
            nr = 1;
        }
    }
        if( nr > n/2 )printf("%d\n",v[p][k-1]);
}

int main(){
    int x;
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&x);
            v[x%Mod].push_back(x);
        }
        for(int i=0;i<Mod;i++)
        if( v[i].size() > n/2 )elmaj(i);

    return 0;
}