Pagini recente » Cod sursa (job #2102396) | Cod sursa (job #1915506) | Cod sursa (job #724449) | Cod sursa (job #1178303) | Cod sursa (job #495906)
Cod sursa(job #495906)
#include <stdio.h>
long N,i,op,x,m;
struct list
{
long nod;
list *link;
}*H[5000000];
void addnum(long x)
{
list *p;
int ok=0;
p=H[x%m];
while(p!=NULL)
{
if(p->nod==x)
{
ok=1;
break;
}
p=p->link;
}
if(ok==0)
{
p=new list;
p->nod=x;
p->link=H[x%m];
H[x%m]=p;
}
}
void delnum(long x)
{
list *p,*q;
int ok;
p=H[x%m];
q=NULL;
while(p!=NULL)
{
if(p->nod==x)
{
ok=1;
break;
}
q=p;
p=p->link;
}
if(ok==1)
if(q!=NULL)
{
p=q->link->link;
q->link=p;
}
else
H[x%m]=p->link;
}
int solnum(long x)
{
list *p;
int ok=0;
p=H[x%m];
while(p!=NULL)
{
if(p->nod==x)
{
ok=1;
break;
}
p=p->link;
}
return ok;
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%ld",&N);
m=4939273;
for(i=1;i<=N;i++)
{
scanf("%d%d",&op,&x);
if(op==1) addnum(x);
else
if(op==2) delnum(x);
else
if(op==3) printf("%d\n",solnum(x));
}
return 0;
}