给set RE 的同学们
查看原帖
给set RE 的同学们
230808
Zxsoul楼主2021/6/20 14:47

原因 :

  1. 规定上下界 (开带点,否则会wa )
se.insert(inf),se.insert(-inf);  
  1. 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);
			} 
		}
	
	
	} 
} 	
2021/6/20 14:47
加载中...