Pagini recente » Cod sursa (job #2794192) | Cod sursa (job #1657707) | Cod sursa (job #1157866) | Cod sursa (job #1317255) | Cod sursa (job #495912)
Cod sursa(job #495912)
#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 main () {
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
n1=676013;
nr3=0;
for (i=1; i<=n; i++) {
scanf("%d%d",&op,&nr);
x=nr%n1;
if (op==1) insert(x,nr);
else
if (op==2)
cauta(h[x],nr,0);
else {
cauta(h[x],nr,1);
nr3++;
}
}
//printf("%d\n",nr3);
return 0;
}