Pagini recente » Cod sursa (job #1148604) | Cod sursa (job #1900301) | Cod sursa (job #916265) | Cod sursa (job #572125) | Cod sursa (job #2210989)
#include <cstdio>
#define KEY 843097 /// credits : random.org
#define MAXN 1000000
using namespace std;
/// TONI BO$$ was here
/// #MLC
int it,lista[KEY],v[MAXN+1],urm[MAXN+1];
int main()
{
int n,q,x,mod;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&q,&x);
mod=x%KEY;
mod=lista[mod];
while(v[mod]!=0 && v[mod]<x)
mod=urm[mod];
switch(q)
{
case 1: if(v[mod]>x || v[mod]==0)
{
mod=x%KEY;
if(lista[mod]==0)
{
lista[mod]=++it;
v[it]=x;
break;
}
while(urm[mod]!=0 && v[urm[mod]]<x)
mod=urm[mod];
++it;
v[it]=x;
urm[it]=urm[mod];
urm[mod]=it;
}
break;
case 2: if(v[mod]==x)
{
mod=x%KEY;
if(v[lista[mod]]==x)
{
lista[mod]=0;
break;
}
while(urm[mod]!=0 && v[urm[mod]]<x)
mod=urm[mod];
urm[mod]=urm[urm[mod]];
}
break;
case 3: printf("%d\n",(v[mod]==x));
break;
}
}
return 0;
}