Cod sursa(job #674337)

Utilizator an_drey_curentandreycurent an_drey_curent Data 6 februarie 2012 00:37:04
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdio.h>
#include<vector>
#define prim 123457
using namespace std;
vector<pair<int,int> >hhash[123460];
int N,numar,aux,aux2;
int operare(int x)
{
	int cheie=x%prim,i;
	for(i=0;i<hhash[cheie].size();i++)
		if(hhash[cheie][i].first==x)
		{
			hhash[cheie][i].second++;
			if(hhash[cheie][i].second>=(aux/2+1))
				return hhash[cheie][i].second;
			else
				return 1;
		}
		hhash[cheie].push_back(make_pair(x,1));
		return 0;
}
int main()
{
	freopen("elmaj.in","r",stdin);
	freopen("elmaj.out","w",stdout);
	scanf("%d",&N);aux=N;
	while(N--)
	{
		scanf("%d",&numar);
		aux2=operare(numar);
		if(aux2>=(aux/2+1))
		{
			printf("%d %d",numar,aux2);
			break;
		}
	}
	return 0;
}