解题思路
用
S
T
L
STL
STL自带的大根堆存下每个人的优先级,姓名,这里存入
p
a
i
r
pair
pair就行,第一关键字为优先级。
pop时就弹出队头
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
string s,c;
int n,w;
priority_queue<pair<int,string> >q;
int main() {
scanf("%d",&n);
for(int i=1; i<=n; i++) {
cin>>s;
if(s=="pop") {
if(!q.empty()) {
cout<<q.top().second<<" ";
printf("%d\n",q.top().first);
q.pop();
}
else printf("none\n");
} else {
cin>>c;
scanf("%d",&w);
q.push(make_pair(w,c));
}
}
}