我都觉得水《《》》
#include<cstdio>
#include<iostream>
using namespace std;
struct poi
{
int a[1000005];
int size;
inline void pushup(int num)
{
while(num>1&&a[num]<a[num/2])
{
swap(a[num],a[num/2]);
num/=2;
}
return ;
}
inline void pushdown(int num)
{
while(num<=size/2)
{
int x=num*2;
if(a[x]>a[x+1]&&x+1<=size)
{
x++;
}
if(a[num]>a[x])
{
swap(a[num],a[x]);
num=x;
}
else break;
}
return ;
}
inline void push(int x)
{
size++;
a[size]=x;
pushup(size);
return ;
}
inline void pop()
{
a[1]=a[size];
size--;
pushdown(1);
return ;
}
inline int top()
{
return a[1];
}
}q;
int main()
{
q.size=0;
int n;
scanf("%d",&n);
int x=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
if(x==1)
{
int y;
scanf("%d",&y);
q.push(y);
}
if(x==2)
{
printf("%d\n",q.a[1]);
}
if(x==3)
{
q.pop();
}
}
return 0;
}