编程题
### 问题描述 你需要实现一个可删除的大根堆,给定 $q$ 组查询,每组查询的操作为其中一种: - `1 x`:插入一个整数 $x$ 进入大根堆中。 - `2 x`:输出大根堆中 $x$ 的个数。 - `3 x`:删除一个大根堆中值为 $x$ 的数。 - `4 x`:删除大根堆中值为 $x$ 的所有的数。 - `5`:输出大根堆中元素数量。 - `6`:输出堆顶元素,如果堆为空则输出 `null`。 - `7`:删除堆顶元素。 ### 输入格式 第一行输入一个 $q$,表示查询数量。$(1\le q\le 2\times 10^5)$ 接下来 $q$ 行,每行输入一组操作。 - `1 x`:插入一个整数 $x$ 进入大根堆中。 - `2 x`:输出大根堆中 $x$ 的个数。 - `3 x`:删除一个大根堆中值为 $x$ 的数。 - `4 x`:删除大根堆中值为 $x$ 的所有的数。 - `5`:输出大根堆中元素数量。 - `6`:输出堆顶元素,如果堆为空则输出 `null`。 - `7`:删除堆顶元素。 对于 $1\sim 4$ 组操作,$1\le x\le 50$。 ### 输出格式 对于 $2,5,6$ 三种操作做出输出并换行,对于删除操作,若此时大根堆无法满足该操作,则不进行操作。 ### 样例输入 ```text 15 1 3 2 3 1 4 2 4 1 3 5 6 4 3 5 2 4 2 3 1 3 3 3 7 5 ``` ### 样例输出 ```text 1 1 3 4 1 1 0 0 ```
查看答案
赣ICP备20007335号-2