Pagini recente » Cod sursa (job #2626530) | Cod sursa (job #2582043) | Cod sursa (job #1428355) | Cod sursa (job #1823417) | Cod sursa (job #265212)
Cod sursa(job #265212)
include <stdio.h>
#define MOD (262144*2)-1
#define Nmax 700000
int next_el = MOD;
struct nod { int nr; char ok; int next; };
nod h[MOD+Nmax];
inline void add(int nr)
{
char ok = 0;
int it;
for (it=nr&MOD;;it=h[it].next)
if (h[it].nr == nr)
{
ok = 1;
h[it].ok = 1;
break;
}
else
if (h[it].next == 0)
break;
if (ok == 0)
{
h[it].next = next_el++;
it = h[it].next;
h[it].nr = nr;
h[it].ok = 1;
}
}
inline void del(int nr)
{
for (int it=nr&MOD;it;it=h[it].next)
if (h[it].nr == nr)
h[it].ok = 0;
}
inline int ok(int nr)
{
for (int it=nr&MOD;it;it=h[it].next)
if (h[it].nr == nr && h[it].ok == 1) return 1;
return 0;
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int t,op,nr;
scanf("%d", &t);
while (t>2)
{
scanf("%d%d",&op,&nr);
if (op == 1) add(nr); else
if (op == 2) del(nr); else
printf("%d\n", ok(nr));
scanf("%d%d",&op,&nr);
if (op == 1) add(nr); else
if (op == 2) del(nr); else
printf("%d\n", ok(nr));
scanf("%d%d",&op,&nr);
if (op == 1) add(nr); else
if (op == 2) del(nr); else
printf("%d\n", ok(nr));
t-=3;
}
while (t--)
{
scanf("%d%d",&op,&nr);
if (op == 1) add(nr); else
if (op == 2) del(nr); else
printf("%d\n", ok(nr));
}
return 0;
}