Pagini recente » Cod sursa (job #1109928) | Cod sursa (job #3149180) | Cod sursa (job #3243408) | Cod sursa (job #1808976) | Cod sursa (job #1447618)
#include <stdio.h>
#include <stdlib.h>
#define BIGPRIME 666013
#define MAXN 1000001
int v[MAXN],next[MAXN],ind[MAXN];
int main(){
FILE*fi,*fout;
int a,b,t,p,i,n;
fi=fopen("hashuri.in" ,"r");
fout=fopen("hashuri.out" ,"w");
fscanf(fi,"%d" ,&n);
for(i=1;i<=n;i++){
fscanf(fi,"%d%d" ,&t,&a);
v[i]=a;
if(t==1){
p=ind[a%BIGPRIME];
while(p>0&&v[p]!=a)
p=next[p];
if(v[p]!=a){
next[i]=ind[a%BIGPRIME];
ind[a%BIGPRIME]=i;
}
}
if(t==2){
p=ind[a%BIGPRIME];
while(p>0&&v[p]!=a)
p=next[p];
if(v[p]==a){
if(v[ind[a%BIGPRIME]]==a)
ind[a%BIGPRIME]=next[ind[a%BIGPRIME]];
next[p]=next[next[p]];
}
}
if(t==3){
p=ind[a%BIGPRIME];
while(p>0&&v[p]!=a)
p=next[p];
if(v[p]==a)
fprintf(fout,"1\n");
else
fprintf(fout,"0\n");
}
}
fclose(fi);
fclose(fout);
return 0;
}