Cod sursa(job #731279)

Utilizator gabrielvGabriel Vanca gabrielv Data 7 aprilie 2012 20:51:41
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 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;
}
void insert(int x)
{
	vector<int>::iterator it;
	int mod=x%MAX;
	it=search(x,mod);
	if(*it!=x)
		G[mod].push_back(x);
}
void remove(int x)
{
	vector<int>::iterator it;
	int mod=x%MAX;
	it=search(x,mod);
	if(*it==x)
		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==x) printf("1\n"); else printf ("0\n"); break;}
		}
	}
	return 0;
}