Pagini recente » Cod sursa (job #2299671) | Cod sursa (job #2974092) | Cod sursa (job #2453431) | Cod sursa (job #1883362) | Cod sursa (job #272993)
Cod sursa(job #272993)
#include<stdio.h>
#define MOD 600111
struct map { int val; map *last,*next; } *v[MOD];
void inline add_node(int x)
{
int rest= x%MOD;
map *p=new map; p->val=x;
p->last=v[rest]; v[rest]->next=p;
v[rest]=p; p->next=NULL;
}
void delete_node(int x)
{
int rest= x%MOD; map *p;
for(p=v[rest]; p!=NULL && p->val!=x; p=p->last) ;
if( p->val==x )
{
if(p->next==NULL) v[rest]=p->last;
p->last->next=p->next;
p->next->last=p->last;
delete p;
}
}
void search_node(int x)
{
int rest= x%MOD; map *p;
for(p=v[rest]; p!=NULL && p->val!=x; p=p->last) ;
if( p->val==x ) printf("1\n");
else printf("0\n");
}
int main()
{
int n,op,x;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
while(n--)
{
scanf("%d %d",&op,&x);
if(op==1) add_node(x);
if(op==2) delete_node(x);
if(op==3) search_node(x);
}
return 1;
}