#include <functional>
#include <iostream>
#include <ostream>
#include <queue>
using namespace std;
int main() {
//大顶堆
priority_queue<int,vector<int>,less<int>> hinp;
int n ;
cin >> n;
for(int i = 0 ; i < n ; i++){
string s;
cin>>s;
if(s[0]=='p'&&s[1]=='u'){
//push
int t;
cin>>t;
hinp.push(t);
}
if(s[0]=='t'){
if(hinp.empty()){
cout<<"empty"<<endl;
continue;
}
cout<<hinp.top()<<endl;
}
if(s[0]=='p'&&s[1]=='o'){
if(hinp.empty()){
cout<<"empty"<<endl;
continue;
}
cout<<hinp.top()<<endl;
hinp.pop();
}
}
return 0;
}
// 64 位输出请用 printf("%lld")
less(大根堆) greater(小根堆)使用c++的priority_queue容器实现对大更小更堆的操作

京公网安备 11010502036488号