评测记录
#include<iostream>
using namespace std;
int swap(int &x,int &y)
{
int t=x;
x=y;
y=t;
}
struct Heap
{
int len;
int arr[1000001];
void put(int x)
{
arr[++len]=x;
int cur=len,fa=cur>>1;
while(cur>1)
{
if(arr[fa]>arr[cur]) swap(arr[fa],arr[cur]);
else break;
cur=fa;
fa=cur>>1;
}
}
int get()
{
return arr[1];
}
void del()
{
swap(arr[1],arr[len]);
len--;
int cur=1,son=cur<<1;
while(cur<len)
{
if(arr[son+1]<arr[son]) son++;
if(arr[son]<arr[cur]) swap(arr[son],arr[cur]);
else break;
cur=son;
son=cur<<1;
}
}
}heap={0,{0}};
int main()
{
int n,op,x;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>op;
if(op==1) {cin>>x;heap.put(x);}
if(op==2) cout<<heap.get();
if(op==3) heap.del();
}
return 0;
}