Pagini recente » Cod sursa (job #469579) | Cod sursa (job #421594) | Cod sursa (job #2744658) | Cod sursa (job #2597616) | Cod sursa (job #381310)
Cod sursa(job #381310)
#include<cstdio>
int a[1001000][2],s[699050],p=699037,q;
int cauta(int k)
{
int rest=k%p,t,poz;
t=s[rest];
poz=0;
while(t&&!poz)
if(a[t][0]==k)
poz=t;
else
t=a[t][1];
return poz;
}
void adauga(int key)
{
int rest=k%p,poz;
poz=cauta(k);
if(!pozitie)
{
a[++q][0]=k;
a[q][1]=s[rest];
s[rest]=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;
}