Cod sursa(job #580551)

Utilizator gyeresihunorGyeresi Hunor gyeresihunor Data 13 aprilie 2011 10:45:31
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <stdio.h>
#include <vector>
using namespace std;
#define p 263167

int a, b, i, n;
vector<int> v[p];
vector<int>::iterator it;
vector<int>::iterator Jozsi;

int beszur(int ki);
int torol(int ki);
int megnez(int ki);

int main()
{
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d%d",&a,&b);
		switch (a)
		{
		case 1:			beszur(b);			break;
		case 2:			torol(b);			break;
		case 3: printf("%d\n",megnez(b));	break;
		default: break;
		}
	}
	return 0;
}

int beszur(int ki)
{
	int h=ki%p;
	if(!megnez(ki))
		v[h].push_back(ki);
	return 0;
}
int torol(int ki)
{
	int h=ki%p;
	Jozsi=v[h].end();
	for(it=v[h].begin(); it<v[h].end(); it++)
	{
		if(*it==ki)
			Jozsi=it;
	}
	if( Jozsi!=v[h].end() )v[h].erase(Jozsi);
	return 0;
}
int megnez(int ki)
{
	int h=ki%p;
	for(it=v[h].begin(); it<v[h].end(); ++it)
	{
		if(*it==ki)return 1;
	}
	return 0;
}