Pagini recente » Cod sursa (job #1168281) | Cod sursa (job #1387487) | Cod sursa (job #2497646) | Cod sursa (job #427021) | Cod sursa (job #1190992)
#include <cstdio>
#define MOD 666013
using namespace std;
int T,i,j,ind;
struct point
{
int inf;
point *leg;
};
point *prim,*p,*q,*u,*h[1000001];
int verif(int x, int ind)
{
point *u,*t;
p=h[ind];
while(p!=NULL && p->inf!=x)
{
u=p;
p=p->leg;
}
if(p!=NULL)
return 1;
return 0;
}
void sterge(int x, int ind)
{
point *u ,*t;
u=NULL;p=h[ind];
while(p!=NULL && p->inf!=x)
{
u=p;
p=p->leg;
}
if(h[ind]!=NULL &&h[ind]->inf==x)
{
t=h[ind];
h[ind]=h[ind]->leg;
delete t;
}
else
if(p!=NULL)
{
u->leg=p->leg;
delete p;
}
}
bool exista(int x, int ind)
{
for(p=h[ind] ;p!=NULL ;p=p->leg)
{
if(p->inf==x) return true;
}
return false;
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&T);
for(; T; --T)
{
scanf("%d %d",&i,&j);
ind=j%MOD;
if(i==1 && !exista(j,ind))
{
q=new point;
q->leg=h[ind];
q->inf=j;
h[ind]=q;
}
if(i==2)
{
sterge(j,ind);
}
if(i==3)
{
printf("%d\n",verif(j,ind));
}
}
return 0;
}