P81502

Floyd 建堆算法

难度 未定 数据结构入门 堆
讨论 统计 0通过 0提交 旧版界面
时间限制 1 秒 内存限制 128 MB

题目描述

请实现一个小根堆,根节点的下标为1,堆初始为空,并实现以下几种功能:

1.pop 删除堆顶元素,并重新维护至小根堆,保证堆不为空

2.insert x a1 a2 ...ax ,把a1 a2 ... ax直接加入数组的尾部,并对数组重新进行Floyd 建堆算法

3.print x,输出数组中下标为x的元素,保证堆中元素数量大于等于x

输入

输入第一行n,表示操作的数量

输出

对于所有操作3,输出一行,每行一个数字

样例

样例 1
输入
10
insert 6 1 1 4 5 1 4
pop
print 2
print 4
pop
insert 4 1 9 1 9
print 3
pop
pop
print 3
输出
1
5
1
4

提示

1 \leq n,x\leq 1000, 1 \leq a_i \leq 10^9

如果两个叶子节点均优于父节点且两个叶子节点相等,那么请选择左儿子与父节点交换

来源

原创

Tab 缩进 · 提交后可在下方查看评测状态
请先登录后再提交