本蒟蒻用的是upper_bound和lower_bound。求各位巨佬帮我看一下。代码如下:
#include<bits/stdc++.h>
using namespace std;
multiset<int> a;
int main(){
int n,g=0;
cin>>n;
a.insert(2147483647);
for(int i=1;i<=n;++i){
int x,y,h;
cin>>x>>y;
if(x==1){
multiset<int>::iterator it;
multiset<int>::iterator b=a.lower_bound(y);
int ans=1;
for(it=a.begin();it!=b;++it)
++ans;
printf("%d\n",ans);
}
else if(x==2){
int ans=1;
multiset<int>::iterator it;
for(it=a.begin();ans<x;++ans)
++it;
printf("%d\n",*it);
}
else if(x==3){
multiset<int>::iterator it=a.lower_bound(y);
--it;
if(it!=a.end())
printf("%d\n",*it);
else
printf("-2147483647");
}
if(x==4){
multiset<int>::iterator it=a.upper_bound(y);
printf("%d\n",*it);
}
if(x==5)
a.insert(y);
//upper_bound lower_bound
}
return 0;
}