Pagini recente » Cod sursa (job #1769957) | Cod sursa (job #145417) | Cod sursa (job #1156056) | Cod sursa (job #1726705) | Cod sursa (job #1370525)
#include <cstdio>
using namespace std;
int const K=666013;
int const N=1000001;
int lst[K],val[N],urm[N],n;
void addNum(int x)
{
int r = x%K,p;
val[++n] = x;
urm[n] = lst[r];
lst[r] = n;
}
void removeNum(int x)
{
int r = x%K,p;
p = lst[r];
if(x == val[p])
{
lst[r] = urm[p];
return;
}
while(urm[p]!=0 && val[urm[p]] != x)
{
p = urm[p];
}
if(urm[p] != 0)
urm[p] = urm[urm[p]];
}
void printNum(int x)
{
int r = x%K,p;
p = lst[r];
while(p != 0)
{
if(val[p] == x)
{
printf("1\n");
return;
}
p = urm[p];
}
printf("0\n");
}
int main()
{
int i,x,op,n;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&op,&x);
if(op == 1) addNum(x);
if(op == 2) removeNum(x);
if(op == 3) printNum(x);
}
return 0;
}