#include<bits/stdc++.h>
using namespace std;
//--------------set--------------
const int N=2e7+10,p=1e7;
int n,cnt[N];
set<int>s;
inline int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return x*f;
}
int main(){
cin>>n;
while(n--){
int op=read(),x=read();
if(op==1){
if(!cnt[x+p])s.insert(x);
cnt[x+p]++;
}else if(op==2){
cnt[x+p]--;
if(!cnt[x+p])s.erase(x);
}else if(op==3){
int ans=1;
auto it=s.begin();
while(*it!=x)ans+=cnt[(*it)+p],it++;
printf("%d\n",ans);
}else if(op==4){
auto it=s.begin();
for(int i=1;i<=x;it++)i+=cnt[(*it)+p];
it--;
printf("%d\n",*it);
}else if(op==5){
auto it=s.lower_bound(x);
--it;
printf("%d\n",*it);
}else{
auto it=s.upper_bound(x);
printf("%d\n",*it);
}
}
}
感觉3和4可以优化,但想不到怎么优化