我已经尽力了,样例能过,自己造的数据能过:
#include<iostream>
#include<set>
using namespace std;
#define ll long long
ll n;
ll f;
ll x;
set <ll> se;
ll len;
int main(){
cin >> n;
for(ll i = 1;i <= n;i ++){
cin >> f >> x;
if(f == 1){
len = max(len,x);
if(se.count(x)){
cout << "Already Exist" << endl;
}
else{
se.insert(x);
}
}
else if(f == 2){
if(se.empty()){
cout << "Empty" << endl;
}
else if(se.count(x)){
cout << x << endl;
se.erase(x);
}
else{
ll tmpm = x + 1;
ll tmpn = x - 1;
while(!se.count(tmpn) && tmpn >= 0){
tmpn --;
}
while(!se.count(tmpm) && tmpm <= len){
tmpm ++;
}
if(tmpn == -1){
cout << tmpm << endl;
se.erase(tmpm);
}
else if(tmpm == len + 1){
cout << tmpn << endl;
se.erase(tmpn);
}
else{
if(x - tmpn <= tmpm - x){
cout << tmpn << endl;
se.erase(tmpn);
}
else{
cout << tmpm << endl;
se.erase(tmpm);
}
}
}
}
}
return 0;
}