set的函数
set默认从小到大排序好且不重复
set增删查遍历
using namespace std;
#include <iostream>
#include <cmath>
#include <set>
int main()
{
int n,i,a1,a2;
cin>>n;
set<int,less<int> > s;
s.insert(2000000005);
for(i=0;i<n;i++)
{
/*for(set<int,less<int> >::iterator itt=s.begin();itt!=s.end();itt++)
{
cout<<"--"<<*itt<<endl;
}*/
cin>>a1>>a2;
//cout<<"cin"<<a2<<endl;
if(a1==1)
{
if(s.find(a2)!=s.end())
{
cout<<"Already Exist"<<endl;
}
else
{
s.insert(a2);
//cout<<"cin--"<<a2<<endl;
}
}
if(a1==2)
{
if(s.size()==1)
{
cout<<"Empty"<<endl;
}
else
{
set<int,less<int> >::iterator it=s.lower_bound(a2);
int a=*it;
if(it!=s.begin())
{
it--;
}
int b=*it;
if(abs(b-a2)<=abs(a-a2)) //如果小一点那个数离a2更近
{
cout<<b<<endl;
s.erase(b);
}
else
{
cout<<a<<endl;
s.erase(a);
}
}
}
/*for(set<int,less<int> >::iterator itt=s.begin();itt!=s.end();itt++)
{
cout<<"++"<<*itt<<endl;
}*/
}
return 0;
}