Pagini recente » Cod sursa (job #3247456) | Cod sursa (job #3294324) | Cod sursa (job #1168347) | Cod sursa (job #1340952) | Cod sursa (job #1233370)
#include <cstdio>
using namespace std;
int lst[658549];
int val[1000005];
int urm[1000005];
int m,r=658547;
void ad(int x)
{
int tip=x%r;
val[++m]=x;
urm[m]=lst[tip];
lst[tip]=m;
}
void del(int x)
{
int tip=x%r;
int p=lst[tip];
if(x==val[p])
lst[tip]=urm[p];
while(urm[p]!=0){
if(x==val[urm[p]])
urm[p]=urm[urm[p]];
p=urm[p];
}
}
bool caut(int x)
{
int p=lst[x%r];
while(p!=0)
{
if(x==val[p])
return true;
p=urm[p];
}
return false;
}
int main()
{
FILE *in,*out;
in=fopen("hashuri.in","r");
out=fopen("hashuri.out","w");
int n,op,x,i;
bool a;
fscanf(in,"%d",&n);
for(i=1;i<=n;i++)
{
fscanf(in,"%d%d",&op,&x);
if(op==1)
ad(x);
if(op==2)
del(x);
if(op==3)
{
a=caut(x);
fprintf(out,"%d\n",a);
}
}
return 0;
}