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平台下会出现乱码现象。

posted @ 2021-09-22 16:43  Rekord  阅读(397)  评论(0编辑  收藏  举报