Cod sursa(job #238855)

Utilizator blasterzMircea Dima blasterz Data 3 ianuarie 2009 14:35:16
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
using namespace std;
#include <cstdio>
#include <set>
#define dim 8192
#define maxh 666777

char ax[dim];
int pz;

inline void cit(int &x)
{
	x=0;
	while(ax[pz]<'0' || ax[pz]>'9')
		if(++pz==dim)fread(ax,1,dim,stdin),pz=0;
	
	while(ax[pz]>='0' && ax[pz]<='9')
	{
		x=x*10+ax[pz]-'0';
		if(++pz==dim)fread(ax,1,dim,stdin),pz=0;
	}
}

set<int> H[maxh];

inline int find(int v)
{
	int h=v%maxh;
	if(H[h].find(v) == H[h].end()) return 0;
	return 1;
}

inline void insert(int v)
{
	H[v%maxh].insert(v);
}

inline void sterge(int v)
{
	H[v%maxh].erase(v);
}

int main()
{
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	int n;
	cit(n);
	int t, p;
	
	while(n--)
	{
		cit(t);cit(p);
		
		if(t == 1) insert(p);
		if(t == 2) sterge(p);
		if(t == 3) printf("%d\n", find(p));
		
	}
	
	return 0;
}