Pagini recente » Cod sursa (job #1884062) | Cod sursa (job #1173620) | Cod sursa (job #2549405) | Cod sursa (job #1345193) | Cod sursa (job #496000)
Cod sursa(job #496000)
#include <stdio.h>
#include <stdlib.h>
struct point {
int inf;
point *leg;
};
point *h[676014];
int n,i,nr,op,n1,x,nr3;
void insert(int x,int nr) {
point *p;
p=new point;
p->inf=nr;
p->leg=h[x];
h[x]=p;
}
void cauta(point *p,int nr, int ok) {
point *u;
if (p==NULL) {
if (ok) printf("0\n");
return;
}
if (p->inf==nr) {
p->inf=0;
if (ok) printf("1\n");
return;
}
while (p!=NULL && p->inf!=nr) {
u=p;
p=p->leg;
}
if (p) {
if (ok) printf("1\n");
p->inf=0;
}
else
if (ok) printf("0\n");
}
int search(point *p,int nr) {
int ok;
ok=0;
while (p!=NULL) {
if (p->inf==nr) {
ok=1;
break;
}
p=p->leg;
}
return ok;
}
int main () {
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
n1=676013;
nr3=0;
//for (i=1; i<=676013; i++) h[i]=NULL;
for (i=1; i<=n; i++) {
scanf("%d%d",&op,&nr);
x=nr%n1;
if (op==1) {
if (search(h[x],nr)==0)
insert(x,nr);
}
else
if (op==2)
cauta(h[x],nr,0);
else {
cauta(h[x],nr,1);
nr3++;
}
}
return 0;
}