Pagini recente » Cod sursa (job #1674134) | Cod sursa (job #716655) | Cod sursa (job #3166147) | Cod sursa (job #3263604) | Cod sursa (job #271458)
Cod sursa(job #271458)
#include<stdio.h>
#define mod 666013
struct nod
{
int info;
nod *urm;
} *l[mod+1];
void adauga(int);
void sterge(int);
int valid(int);
int main()
{
int n,a,b;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(;n;n--)
{
scanf("%d%d",&a,&b);
if (a==1)
adauga(b);
if (a==2)
sterge(b);
if (a==3)
printf("%d\n",valid(b));
//printf("%d\n",n);
}
return 0;
}
void adauga(int b)
{
if (!valid(b))
{
int poz=b % mod;
nod *p=new nod;
p->info=b;
p->urm=l[poz];
l[poz]=p;
}
}
void sterge(int b)
{
int poz=b % mod;
for( ;l[poz]->info == b && l[poz]; l[poz]=l[poz]->urm) ;
nod *t=l[poz];
for(;t->urm;t=t->urm)
if (t->urm->info == b)
{
nod *q=t->urm;
t->urm=q->urm;
delete q;
}
}
int valid(int b)
{
int poz=b % mod;
nod *t=l[poz];
for(;t;t=t->urm)
if (t->info == b)
return 1;
return 0;
}