U551959 模拟堆

题目描述

维护一个集合,初始时集合为空,支持如下几种操作: 1. `I x`,插入一个数 $x$; 2. `PM`,输出当前集合中的最小值; 3. `DM`,删除当前集合中的最小值(数据保证此时的最小值唯一); 4. `D k`,删除第 $k$ 个插入的数; 5. `C k x`,修改第 $k$ 个插入的数,将其变为 $x$; 现在要进行 $N$ 次操作,对于所有第 $2$ 个操作,输出当前集合的最小值。

输入格式

第一行包含整数 $N$。 接下来 $N$ 行,每行包含一个操作指令,操作指令为 `I x`,`PM`,`DM`,`D k` 或 `C k x` 中的一种。

输出格式

对于每个输出指令 `PM`,输出一个结果,表示当前集合中的最小值。 每个结果占一行。

说明/提示

#### 数据范围 $1 \le N \le 10^5$ $-10^9 \le x \le 10^9$ 数据保证合法。