Pagini recente » Cod sursa (job #1491396) | Cod sursa (job #244456) | Cod sursa (job #2560181) | Cod sursa (job #123465) | Cod sursa (job #273057)
Cod sursa(job #273057)
#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; exit(0);
}
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;
p->val=0;
}
}
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);
}
return 0;
}