Pagini recente » Cod sursa (job #913158) | Cod sursa (job #2796083) | Cod sursa (job #2578442) | Cod sursa (job #267733) | Cod sursa (job #496028)
Cod sursa(job #496028)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
struct point
{
int inf;
point *leg;
};
point *u,*q,*a[1000000],*p,*pp,*qq;
int n,i,nr,x,op;
int caut(int q,int qqq)
{
qq=a[q%(qqq+1)];
while (qq)
{
if (qq->inf==q) return 1;
qq=qq->leg;
}
return 0;
}
void ins(int q,int qqq)
{
p=new point;
p->inf=q;
p->leg=a[q%(qqq+1)];
a[q%(qqq+1)]=p;
/*if (a[q%qqq]!=NULL)
p->leg=a[q%qqq];
a[q%qqq]=p; */
}
void sterge(int q,int qqq)
{
qq=a[q%(qqq+1)];
//if (qq==NULL) return;
if (qq->inf==q)
{
a[q%(qqq+1)]=a[q%(qqq+1)]->leg;
return;
}
/*while (qq&&qq->inf!=q) qq=qq->leg;
if (qq) qq->inf=0; */
while(qq->leg)
{
if(qq->leg->inf==q){qq->leg=qq->leg->leg;return;}
qq=qq->leg;
}
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++)
a[i]=NULL;
for (i=1;i<=n;i++)
{
scanf("%d%d",&op,&x);
if (op==1)
if ((caut(x,n%999983))==0)
ins(x,n%999983);
if (op==2)
if (caut(x,n%999983)==1) sterge(x,n%999983);
if (op==3)
//if (caut(x,n%999983)==1) printf("1\n");
// else printf("0\n");
printf("%d\n",caut(x,n%999983)==1);
}
return 0;
}