#D. 副队长的堆

    传统题 1000ms 256MiB

副队长的堆

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

集训队副队长特别喜欢堆这个数据结构,为了检验同学们在课上是否听课,他给出了一道特别模板的堆结构题。

给你一个初始化为空的数组,这个数组支持以下四种操作

  1. 打印出数组中元素,中间用空格分隔
  2. 给定一个正整数 vv , 将整数 vv 添加到数组中
  3. 输出数组中最小的数
  4. 删除数列中最小的数(如果有多个数最小,只删除 11 个)

输入格式

每行表示一次操作,题目保证操作数不超过 10610^6

每行有一个整数 op(op{0,1,2,3,4})op(op \in \{0, 1,2,3,4\}),表示操作类型

  • op=0op = 0,则表示输入结束,要求退出程序
  • op=1op = 1,则要求按照堆的层序遍历(先左后右)的顺序打印一行数组中的元素,中间用空格分隔(若数组为空则打印 1-1
  • op=2op = 2,则接下来给出一个正整数(在同一行中) v(0v264)v(0 \leq v \le 2^{64}),表示要将整数 vv 加入数组
  • op=3op = 3,则要求打印一行,表示数组中的最小值(若数组为空则打印 1-1
  • op=4op = 4,则要求删除数组中的一个最小值(若数组为空则不操作)

输出格式

对于每个要求输出的操作,输出打印结果

样例输入输出

2 2
2 5
3
4
3
1
0
2
5
5
2 53
2 83
2 57
2 98
2 38
3
1
0
38
38 53 57 98 83 

提示

如果你用数组模拟了堆,那么绝大部分情况下,堆的程序遍历就是遍历数组的结果

2024暑假算法集训营第一次排位赛

未参加
状态
已结束
规则
ACM/ICPC
题目
5
开始于
2024-7-13 14:00
结束于
2024-7-13 17:00
持续时间
3 小时
主持人
参赛人数
48