Pagini recente » Cod sursa (job #1825376) | Cod sursa (job #657258) | Cod sursa (job #2147994) | Cod sursa (job #783225) | Cod sursa (job #1170979)
#include <cstdio>
#include <algorithm>
using namespace std;
int v[500000],h;
void adauga(int y, int &h)
{
int st,dr,med,ok=0;
st=1;
dr=h;
while(st<=dr){
med=dr+(st-dr)/2;
if(v[med]==y)
ok=1;
if(y>v[med])
st=med+1;
else
dr=med-1;
}
if(ok==0){
h++;
v[h]=y;
}
}
void stergere(int y, int &h)
{
int st,dr,med,i;
st=1;
dr=h;
while(st<=dr){
med=dr+(st-dr)/2;
if(v[med]==y){
v[i]=-1;
h--;
break;
}
if(y>v[med])
st=med+1;
else
dr=med-1;
}
}
void afis(int y)
{
int st,dr,med,ok=0;
st=1;
dr=h;
while(st<=dr){
med=dr+(st-dr)/2;
if(v[med]==y){
ok=1;
printf("1\n");
}
if(y>v[med])
st=med+1;
else
dr=med-1;
}
if(ok==0)
printf("0\n");
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int n,x,y,i;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d%d",&x,&y);
sort(v+1,v+h+1);
if(x==1){
adauga(y,h);
continue;
}
if(x==2){
stergere(y,h);
continue;
}
if(x==3)
afis(y);
}
return 0;
}