Cod sursa(job #1047583)

Utilizator donydony2009FMI - Donisan George donydony2009 Data 4 decembrie 2013 18:36:44
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
#include<vector>
using namespace std;
#define Vsize 666013
vector < pair<int,int> > Hash[Vsize];
int n,MyX,NrA;
int search(int x)
{
	int rest = x%Vsize;
	for(int i=0;i<Hash[rest].size();i++)
		if(Hash[rest][i].first==x)
			return i;
		return -1;
}
void add(int x)
{
	int rest = x % Vsize,s=search(x);
	if(s==-1)
		Hash[rest].push_back(std::make_pair(x,1));
	else
	{
		Hash[rest][s].second++;
		if(Hash[rest][s].second>=n/2+1)
			MyX=x,NrA=Hash[rest][s].second;
	}
}
int main(void)
{
	ifstream f("elmaj.in");
	ofstream g("elmaj.out");
	int nr,i;
	MyX=-1;
	f>>n;
	for(i=1;i<=n;i++)
	{
		f>>nr;
		add(nr);
	}
	g<<MyX;
	if(MyX!=-1)
		g<<" "<<NrA;
}