20分,一直改不对
#include<bits/stdc++.h>
using namespace std;
int a[1000005],cnt,n,x,s,u,v,g;
void up(int u){
if(u/2&&a[u/2]<a[u]){
swap(a[u/2],a[u]),up(u/2);
}
}
void down(int u){
int m=u;
if(u*2<=cnt&&a[u*2]<a[m]){
v=a[m*2];
}
if(u*2+1<=cnt&&a[u*2+1]<a[m]){
g=a[m*2+1];
}
u=min(v,g);
if(u!=m){
down(u);
}
}
void add(int d){
a[++cnt]=d;
u=cnt;
up(d);
}
void del(){
a[1]=a[cnt--];
down(1);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
if(x==1){
cin>>s;
add(s);
}
if(x==2){
cout<<a[1]<<endl;
}
if(x==3){
del();
}
}
return 0;
}
rt