Pagini recente » Cod sursa (job #2882570) | Cod sursa (job #2787438) | Cod sursa (job #1317946) | Cod sursa (job #1535874) | Cod sursa (job #1922039)
#include <cstdio>
using namespace std;
const int prim=103,mod=2000000;
int hashh[mod+10];
void add_hash(int x)
{
int a=(1LL*x*prim)%mod;
while(hashh[a]!=x && hashh[a]!=0)
{
a++;
if(a==mod) a=0;
}
hashh[a]=x;
}
void delete_hash(int x)
{
int a=(1LL*x*prim)%mod;
while(hashh[a]!=x && hashh[a]!=0)
{
a++;
if(a==mod) a=0;
}
if(hashh[a]==x) hashh[a]=-1;
}
int query(int x)
{
int a=(1LL*x*prim)%mod;
while(hashh[a]!=x && hashh[a]!=0)
{
a++;
if(a==mod) a=0;
}
if(hashh[a]==x) return 1;
else return 0;
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int n,x,tip;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&tip,&x);
if(tip==1) add_hash(x);
else if(tip==2) delete_hash(x);
else printf("%d\n",query(x));
}
return 0;
}