Pagini recente » Cod sursa (job #811230) | Cod sursa (job #2610864) | Cod sursa (job #1520840) | Monitorul de evaluare | Cod sursa (job #353188)
Cod sursa(job #353188)
#include<stdio.h>
#define DIM 1234561
struct nod
{
int x;
nod *urm;
} *lst[DIM];
int n;
short baga (short a,int b)
{
nod *p;
for(p=lst[a];p;p=p->urm)
if(p->x==b)
return 0;
p=new nod;
p->x=b;
p->urm=lst[a];
lst[a]=p;
}
void sterge (short a,int b)
{
nod *p,*q;
if (!lst[b])
return ;
if (lst[b]->x==a)
{
p=lst[b];
lst[b]=p->urm;
delete p;
return ;
}
for (p=lst[b], q=NULL; p; q=p, p=p->urm)
if (p->x==a)
{
q->urm=p->urm;
delete p;
return;
}
}
bool cauta (short a,int b)
{
nod *p;
for(p=lst[a];p;p=p->urm)
if(p->x==b)
return 1;
return 0;
}
int main ()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int i,q,x;
scanf("%d",&n);
for(i=1;i<=n;++i)
{
scanf("%d%d",&q,&x);
if(q==1)
baga (x%DIM,x);
else if (q==2)
sterge (x%DIM,x);
else
printf("%d\n",cauta (x%DIM,x));
}
return 0;
}