1371:看病
不用scanf/printf只能拿90分。
代码参考自gaojs。
#include <bits/stdc++.h>
using namespace std;
struct Node {
string name;
int pri;
Node(const string &name, int pri) {
this->name = name;
this->pri = pri;
}
friend bool operator<(const Node &a, const Node &b) {
return a.pri < b.pri;
}
};
int main()
{
int n;
scanf("%d", &n);
priority_queue<Node> q;
char op[10], name[20];
int pri;
for (int i = 0; i < n; i++) {
scanf("%s", op);
if (op[1] == 'u') { // push
scanf("%s%d", name, &pri);
q.push(Node(name, pri));
} else { // pop
if (q.empty()) {
cout << "none" << endl;
} else {
const Node &t = q.top();
printf("%s %d\n", t.name.c_str(), t.pri);
q.pop();
}
}
}
return 0;
}
使用printf的%s输出一个string对象,在vscode平台下会出现乱码现象。