Pagini recente » Cod sursa (job #1017498) | Cod sursa (job #2932747) | Cod sursa (job #1668402) | Cod sursa (job #2589039) | Cod sursa (job #381522)
Cod sursa(job #381522)
#include<cstdio>
int a[1001000][2],s[699050],p=699037,q;
int cauta(int k)
{
int r=k%p,t,poz;
t=s[r];
poz=0;
while(t&&!poz)
if(a[t][0]==k)
poz=t;
else
t=a[t][1];
return poz;
}
void adauga(int k)
{
int r=k%p,poz;
poz=cauta(k);
if(!poz)
{
a[++q][0]=k;
a[q][1]=s[r];
s[r]=q;
}
}
void sterge(int k)
{
int poz;
poz=cauta(k);
if(poz)
a[poz][0]=-k;
}
int main()
{
int i,n,op,x;
freopen("hashuri.in","rt",stdin);
freopen("hashuri.out","wt",stdout);
scanf("%d",n);
for(i=1;i<=n;i++)
{
scanf("%d%d",op,x);
if(op==1)
adauga(x);
else
if(op==2)
sterge(x);
else
if(cauta(x))
printf("1\n");
else
printf("0\n");
}
return 0;
}