题目:集合操作
题解:先把所有数字都放进去预处理。然后把要插入的删除,删除的插入。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int>P;
const int inf = 0x7f7f7f7f;
const int N = 1e6+10;
const ll mod = 1e9+7;
int read(){
char ch=getchar();int x=0,f=1;
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int random(int n){return(ll)rand()*rand()%n;}
int op[N],x[N];
set<int>st;
int main(){
srand((unsigned)time(0));
//freopen("out.txt","w",stdout);
//freopen("in.txt","r",stdin);
int n = read();
for(int i = 1;i <= n;i++){
op[i] = read();
x[i] = read();
st.insert(x[i]);
st.insert(x[i]+1);
}
for(int i = 1;i <= n;i++){
if(op[i] == 1) st.erase(x[i]);
else if(op[i] == 2) st.insert(x[i]);
else {
cout<<(*st.lower_bound(x[i]))<<endl;
}
}
return 0;
}