题目链接:https://www.luogu.org/problemnew/show/P3378
是堆的模板...我懒,STL da fa is good
#include <iostream> #include <cstdio> #include <queue> #include <algorithm> using namespace std; priority_queue<int,vector<int>,greater<int> > qqq;//小根堆 //priority_queue<int> qqq;//大根堆 int ans[1000001]; int k,x,cnt=1; int main() { int n; cin>>n; for(int i = 1; i <= n; i++) { cin>>k; if(k == 1) { cin>>x; qqq.push(x); } if(k == 2) { ans[cnt]=qqq.top(); cnt++; } if(k == 3) { qqq.pop(); } } /*while(!qqq.empty()) { int x=qqq.top(); cout<<x<<" "; qqq.pop(); }都可以用来输出*/ for(int i = 1; i < cnt; i++) { cout<<ans[i]<<endl; } return 0; }