原因 :
- 规定上下界 (开带点,否则会wa )
se.insert(inf),se.insert(-inf);
lower_bound
越界
if (x-*l<=*r-x && *l!=-inf)
AC代码
main()
{
n=read();
se.insert(inf),se.insert(-inf);
for (int i=1;i<=n;i++)
{
int opt=read(),x=read();
if (opt==1)
{
if (se.find(x)!=se.end()) printf("Already Exist\n");
else se.insert(x);
}
else
{
if (se.size()==2) printf("Empty\n");
else
{
set<int>::iterator l=--se.lower_bound(x) ,r=se.lower_bound(x);
if (x-*l<=*r-x && *l!=-inf)
{
ans=*l;
se.erase(l);
}
else {ans=*r;se.erase(r);}
printf("%lld\n",ans);
}
}
}
}