Cod sursa(job #731287)

Utilizator gabrielvGabriel Vanca gabrielv Data 7 aprilie 2012 21:00:06
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
using namespace std;
#include<cstdio>
#include<vector>
#define MAX 600043
vector <int> G[MAX];
//int
vector<int>::iterator search(int x, int mod)
{
	//int *it;
	vector<int>::iterator it;
	for(it=G[mod].begin();it!=G[mod].end();it++)
		if(*it==x)
			return it;
	//return -1;
	return G[mod].end();
}
void insert(int x)
{
	vector<int>::iterator it;
	int mod=x%MAX;
	it=search(x,mod);
	if(it==G[mod].end())
		G[mod].push_back(x);
}
void remove(int x)
{
	vector<int>::iterator it;
	int mod=x%MAX;
	it=search(x,mod);
	if(it!=G[mod].end())
		G[mod].erase(it);
}
int main()
{
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	int n,op,x;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d %d",&op,&x);
		switch(op)
		{
			case 1: { insert(x); break;}
			case 2: { remove(x); break;}
			case 3: { vector<int>::iterator it; it=search(x,x%MAX); if(it!=G[x%MAX].end()) printf("1\n"); else printf ("0\n"); break;}
		}
	}
	return 0;
}