Cod sursa(job #385719)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 23 ianuarie 2010 12:45:58
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<stdio.h>
#include<vector>
#define Mod 1<<19
using namespace std;

vector<int> V[Mod];
int i,x,n,op;
vector<int>::iterator find(int x)
{
	int val=x%Mod;
	vector<int>::iterator it;
	
	for(it=V[val].begin(); it!=V[val].end(); it++)
		if(*it==x)
			return it;
		
		return V[val].end();
}
void push(int x)
{
	int val=x%Mod;
	
	if(find(x)==V[val].end())
		V[val].push_back(x);
}

void pop(int x)
{
	int val=x%Mod;
	
	vector<int>::iterator it=find(x);
	
	if(it!=V[val].end())
		V[val].erase(it);
}

int main()
{
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	
	scanf("%d",&n);
	
	for(i=1;i<=n;i++)
	{
		scanf("%d %d",&op,&x);
		
		if(op==1)
		{
			push(x);
			continue;
		}
		if(op==2)
		{
			pop(x);
			continue;
		}
		printf("%d\n",find(x)!=V[x%Mod].end());
	}
return 0;
}