Pagini recente » Cod sursa (job #1558320) | Cod sursa (job #1594910) | Cod sursa (job #1318712) | Cod sursa (job #1280506) | Cod sursa (job #906668)
Cod sursa(job #906668)
#include<cstdio>
#include<cstdlib>
#define mod1 666013
#define mod2 391939
int H[mod1];
void insert(int x,int ex=0)
{
int p;
p=x%mod1;
if(H[p]==ex) p=x%mod2;
if(H[p]==0 || H[p]==x)
{
H[p]=x;
return;
}
else
{
int y;
y=H[p];
H[p]=x;
insert(y,x);
}
}
void remove(int x)
{
int p;
p=x%mod1;if(H[p]==x) H[p]=0;
p=x%mod2;if(H[p]==x) H[p]=0;
}
int find(int x)
{
if(H[x%mod1]==x || H[x%mod2]==x) return 1;
return 0;
}
int main()
{
FILE *f=fopen("hashuri.in", "r"),*g=fopen("hashuri.out", "w");
int n,i,op,x;
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
{
fscanf(f,"%d%d",&op,&x);
if(op==1) insert(x);
else if(op==2) remove(x);
else if(op==3) fprintf(g,"%d\n",find(x));
}
return 0;
}