Pagini recente » Cod sursa (job #2704631) | Cod sursa (job #2920438) | Cod sursa (job #2807763) | Cod sursa (job #2679670) | Cod sursa (job #342994)
Cod sursa(job #342994)
#include <cstdio>
#define MOD 666013
struct adr
{
int val;
adr *urm;
} *L[MOD];
void insert(int x)
{
int nr=x%MOD;
adr *p=new adr;
p->val=x; p->urm=L[nr];
L[nr]=p;
}
int query(int x)
{
int nr=x%MOD;
adr *p;
for (p=L[nr]; p && p->val!=x; p=p->urm);
return p!=NULL;
}
void erase(int x)
{
int nr=x%MOD;
adr *p,*t;
for (p=L[nr]; p->urm && p->urm->val!=x; p=p->urm);
t=p->urm;
if (!t) p->urm=NULL, delete p;
else p->urm=p->urm->urm, delete t;
}
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);
switch (op)
{
case 1:if (!query(x)) insert(x); break;
case 2:if (query(x)) erase(x); break;
case 3:printf("%d\n",query(x)); break;
}
}
return 0;
}