Pagini recente » Cod sursa (job #2545892) | Cod sursa (job #534850) | Cod sursa (job #219357) | Cod sursa (job #1258902) | Cod sursa (job #895882)
Cod sursa(job #895882)
#include<cstdio>
#include<cmath>
int n,z,c,x,i,h[66601][50];
bool ok;
inline int cod(int x)
{
return (((int)((float)x*(float)(sqrt(5)-2)))%66601);
}
inline bool gas(int x)
{
int c,i;
c=cod(x);
for(i=1;i<=h[c][0];++i)
if(h[c][i]==x)return 1;
return 0;
}
inline void add(int x)
{
int c=cod(x);
h[c][++h[c][0]]=x;
}
inline void del(int x)
{
int i=1,c=cod(x);
while(h[c][i]!=x)
++i;
--h[c][0];
while(i<=h[c][0])
{
h[c][i]=h[c][i+1];
++i;
}
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;++i)
{
scanf("%d%d",&z,&x);
switch(z)
{
case 1:
{
if(!gas(x))add(x);
break;
}
case 2:
{
if(gas(x))del(x);
break;
}
case 3:
{
printf("%d\n",gas(x));
break;
}
}
}
return 0;
}