#include<iostream>
using namespace std;
int main()
{
int weight[100001]={0},i,j=0,k,n,m,a;
char c;
cin>>n;
for(i=0;i<n;i++)
{
cin>>c;
if(c=='A')
{
j++;
cin>>weight[j];
k=j;
while((weight[k]>weight[k/2])&&(k>1))
{
m=weight[k];
weight[k]=weight[k/2];
weight[k/2]=m;
k=k/2;
}
}
else if(c=='T')
{
a=weight[1];
cout<<a<<endl;
weight[1]=weight[j];
j--;
k=1;
while((weight[k]<weight[k*2]||weight[k]<weight[k*2+1])&&(k<=j/2))
{
if(weight[k*2+1]<weight[k*2])
{
m=weight[k];
weight[k]=weight[k*2];
weight[k*2]=m;
k=k*2;
}
else
{
m=weight[k];
weight[k]=weight[k*2+1];
weight[k*2+1]=m;
k=k*2+1;
}
}
}
}
return 0;
}
堆——hihoCoder "hiho一下 第二十八周"题目解析
最新推荐文章于 2024-09-29 18:03:50 发布