P4851.模拟堆
题面描述
维护一个集合,初始时给定一个长度为 n 的初始数组,数组中的每个数都在集合中。
接下来给定 m 次操作,支持如下几种操作:
1. I x,插入一个数 x;
2. PM,输出当前集合中的最小值;
3. DM,删除当前集合中的最小值;
数据保证此时的最小值唯一。
对于所有第 2 个操作,输出当前集合的最小值。
可以在题面描述后面加入:
输入描述
第一行包含两个整数 n,m,分别表示初始数组的长度和操作次数。
第二行包含 n 个整数,表示初始数组中的元素,数组中的每个数初始时都在集合中。
接下来 m 行,每行表示一次操作,操作格式如下:
I x:向集合中插入整数 x;
PM:输出当前集合中的最小值;
DM:删除当前集合中的最小值。
输出描述
对于每一次 PM 操作,输出当前集合中的最小值,每个结果占一行。
输入
3 5
4 1 7
PM
I -5
PM
DM
PM
输出
1
-5
1
1≤n,m≤105
−109≤x≤109