Pagini recente » Cod sursa (job #1461988) | Cod sursa (job #3289485) | Runda 2 preONI 2007 | Cod sursa (job #2154561) | Cod sursa (job #239584)
Cod sursa(job #239584)
#include <stdio.h>
#define MOD1 1235781
#define MOD2 1100781
#define MOD3 1036181
#define MOD4 336081
#define MOD5 136181
#define MOD6 36081
unsigned h1[MOD1];
unsigned h2[MOD2];
unsigned h3[MOD3];
unsigned h4[MOD4];
unsigned h5[MOD5];
unsigned h6[MOD6];
#define x1 h1[((x*29)%MOD1)]
#define x2 h2[((x*31)%MOD2)]
#define x3 h3[((x*51)%MOD3)]
#define x4 h4[((x*73)%MOD4)]
#define x5 h5[((x*23)%MOD5)]
#define x6 h6[((x*37)%MOD6)]
unsigned ok(unsigned x)
{
if ((x1 > 0) && (x2 > 0) && (x3 > 0) && (x4 > 0) && (x5 > 0) && (x6 > 0)) return 1;
return 0;
}
void add(unsigned x)
{
if ((x1 != 0) && (x2 != 0) && (x3 != 0) && (x4 != 0) && (x5 != 0) && (x6 != 0)) return;
++x1; ++x2; ++x3; ++x4; ++x5; ++x6;
}
void del(unsigned x)
{
if (!ok(x)) return;
--x1; --x2; --x3; --x4; --x5; --x6;
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
unsigned t,op,nr;
scanf("%u", &t);
while (t--)
{
scanf("%u%u",&op,&nr);
if (op == 1) add(nr); else
if (op == 2) del(nr); else
printf("%u\n", ok(nr));
}
return 0;
}