Pagini recente » Cod sursa (job #3002857) | Cod sursa (job #629673) | Cod sursa (job #1217551) | Cod sursa (job #3201473) | Cod sursa (job #244903)
Cod sursa(job #244903)
#include<stdio.h>
#define M 666013
int n;
int op,x;
struct list
{
int x;
list *next;
};
list *a[M];
inline void add(int unde)
{
list *aux=new list;
aux->next=a[unde];
aux->x=x;
a[unde]=aux;
}
list *find(int unde)
{
list *y=a[unde];
for(list *y=a[unde]; y->next!=NULL; y=y->next)
{
if(y->next->x==x)
return y;
}
return NULL;
}
inline void insert()
{
int unde=x%M;
if(a[unde]==NULL)
{
add(unde);
return;
}
if(a[unde]->x==x)
return;
if(find(unde)!=NULL)
add(unde);
}
inline void sterge()
{
int unde=x%M;
if(a[unde]==NULL)
return;
if(a[unde]->x==x)
{
list *aux=a[unde];
a[unde]=a[unde]->next;
delete aux;
return;
}
list *aux=find(unde);
if(aux!=NULL)
{
list *aux1=aux->next;
aux->next=aux->next->next;
delete aux1;
}
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
for(scanf("%d",&n); n; --n)
{
scanf("%d%d",&op,&x);
if(op==1)
{
insert();
continue;
}
if(op==2)
{
sterge();
continue;
}
int unde=x%M;
if(a[unde]==NULL)
{
fputs("0\n",stdout);
continue;
}
if(a[unde]->x==x)
{
fputs("1\n",stdout);
continue;
}
if(find(unde)==NULL)
fputs("0\n",stdout);
else
fputs("1\n",stdout);
}
return 0;
}