TLE 了后面三个点,求救~
#include<bits/stdc++.h>
using namespace std;
int n,a,b,k=1,ans[200010],m=1,len;
struct abc{
int x;
int y;
}x;
vector<abc> ve;
bool cmp1(abc x,abc y){
return x.x<y.x;
}
bool cmp2(abc x,abc y){
return x.y<y.y;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
len=ve.size();
cin>>a;
if(a==0){
cin>>b;
x.x=b;
x.y=k;
ve.push_back(x);
k++;
}
else if(a==1){
sort(ve.begin()+0,ve.begin()+len,cmp2);
ve.erase(ve.begin()+ve.size()-1);
len--;
}
else if(a==2){
sort(ve.begin()+0,ve.begin()+len,cmp1);
if(!ve.size()==0) ans[m]=ve[ve.size()-1].x;
else ans[m]=0;
m++;
}
}
for(int i=1;i<m;i++) cout<<ans[i]<<"\n";
return 0;
}