Cod sursa(job #781639)

Utilizator my666013Test Here my666013 Data 24 august 2012 19:41:13
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 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, f, m = 0;
    sort(v[p].begin(),v[p].end());
    for(int i=1;i<k;i++)
    {
        if( v[p][i] == v[p][i-1] )nr++; else nr = 1;

        if( nr > m )
        {
            f = i;
            m = nr;
        }
    }
    if( m > n/2 )
    printf("%d %d\n",v[p][f],m);
}

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;
}