#include<bits/stdc++.h> using namespace std;set<int>s;int p,x,a,b; int main(){for(cin>>x;cin>>p>>x;){ if(p<2){if(s.count(x))puts("Already Exist");s.insert(x);} else if(s.size()){ if(x<=(p=*s.begin()))cout<<p<<endl,s.erase(p); else if(x>=(p=*--s.end()))cout<<p<<endl,s.erase(p); else{auto it=s.lower_bound(x);a=*it,b=*--it; if(x-b>a-x)b=a;cout<<b<<endl,s.erase(b); } } else puts("Empty"); } }
给出一份不那么长的解