OlveraeUNSW
返回题目列表
COMP2521

优先队列 · 入队/取最大

优先队列 · 入队 / 取最大

实现一个最大优先队列,处理命令流:

  • I x:插入整数 x
  • X:取出并打印当前最大值(保证调用时非空)

输入:第一行命令数 m;接着 m 行命令。
输出:每个 X 一行——被取出的最大值。

例:I 5 / I 1 / I 9 / X / I 3 / X → 9(最大)然后 5。

推荐用堆:I 和 X 都 O(log n)。Python 的 heapq 是小根堆,存负数即可当大根堆。

样例

stdin
6
I 5
I 1
I 9
X
I 3
X
期望输出
9
5
python3
14