3300 - 堆(模板)
时间限制 : 2 秒
内存限制 : 512 MB
给定一个数列,初始为空,请支持下面三种操作:
给定一个整数x,请将x加入到数列中。
输出数列中最小的数。
删除数列中最小的数(如果有多个数最小,只删除1个)。
输入
第一行是一个整数,表示操作的次数n。
接下来n行,每行表示一次操作。每行首先有一个整数op表示操作类型。
若op=1,则后面有一个整数x,表示要将x加入数列。
若op=2,则表示要求输出数列中的最小数。若数列为空,输出0。
若op=3,则表示删除数列中的最小数。如果有多个数最小,只删除1个。
输出
对于每个操作2,输出一行一个整数表示答案。
样例
输入
5 1 2 1 5 2 3 2
输出
2 5
提示
对于 100% 的数据,保证 1≤n≤10^6,1≤x<2^31,op∈{1,2,3}。