如题,代码如下:
#include<iostream>
#include<map>
using namespace std;
map<int,bool> M;
map<int,bool>::iterator it;
int num;
int main(){
int a,b,msize;
cin>>num;
while(cin>>a){
if(a==1){
cin>>b;
msize=M.size();
M[b]=1;
if(M.size()==msize) cout<<"Already Exist"<<endl;
}else if(a==2){
cin>>b;
if(M.size()==0) cout<<"Empty"<<endl;
else{
if(M.count(b)){
cout<<b<<endl;
M.erase(b);
}else{
int l,r;
M[b]=1;
it=M.find(b);
it--;
l=(*it).first;
it=M.find(b);
it++;
r=(*it).first;
it=M.find(b);
// cout<<"lb="<<abs(l-b)<<" rb="<<abs(r-b)<<" ";//
if(!M.count(r)){
cout<<l<<endl;
M.erase(l);
}else if(!M.count(l)){
cout<<r<<endl;
M.erase(r);
}else if(b-l > r-b){
cout<<r<<endl;
M.erase(r);
}else{
cout<<l<<endl;
M.erase(l);
}
M.erase(b);
}
}
}
}
return 0;
}