Pagini recente » Cod sursa (job #252254) | Cod sursa (job #960575) | Cod sursa (job #2509618) | Cod sursa (job #1939078) | Cod sursa (job #273062)
Cod sursa(job #273062)
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#define MOD 666013
struct map { int val; map *last; } *v[MOD];
int add_node(int x)
{
int rest= x%MOD; map *p=NULL;
for(p=v[rest]; p!=NULL && p->val!=x; p=p->last);
if(p->val==x) return 1;
p=new map; p->val=x;
p->last=v[rest]; v[rest]=p;
}
void delete_node(int x)
{
int rest= x%MOD; map *p=NULL,*before=NULL;
for(p=v[rest]; p!=NULL && p->val!=x; p=p->last) before=p;
if( p->val==x )
{
if(before==NULL) v[rest]=p->last;
before->last=p->last;
delete p;
}
}
void search_node(int x)
{
int rest= x%MOD; map *p=NULL;
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); exit(0);
}
return 0;
}