编程题
### 问题描述 本题是一道堆排序模板题。 你需要构建一个堆,可以实现如下操作: 1. `push`:将一个正整数 $x$ 插入堆中。 2. `remove`:删除堆顶元素,并将堆顶元素输出。若此时堆为空,则输出 `empty`。 3. `min`:输出堆中最小的元素。若此时堆为空,则输出 `empty`。 4. `print`:给定一个小于等于当前堆中元素的数字 $k$,你需要在一行内输出当前堆中最小的 $k$ 个元素,并将其全部删除,数据保证该操作不会在堆为空时出现。 ### 输入格式 第一行输入一个整数 $n$,表示操作的数量。 接下来 $n$ 行,每行一个字符串,表示具体的操作。 ### 输出格式 对于 `remove`,`min`,`print` 操作,按照题目要求进行输出。 ### 样例输入 ```text 8 push 4 min remove remove push 3 push 7 push 2 print 2 ``` ### 样例输出 ```text 4 empty 2 3 ``` ### 评测数据规模 $1 \le n \le 2\times10^5,1\le x\le 10^3$。
查看答案
赣ICP备20007335号-2