4191: Querying Multiset
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:0
解决:0
题目描述
# Querying Multiset
### 内存
1024MB
### 时间
2S
## 题目描述
小高有许多球和一个袋子。最初,袋子是空的。小高将进行 $Q$ 次操作,每次操作是以下三种类型之一。
1. 在一个空白球上写上整数 $X_i$ 并将其放入袋中。
2. 对于袋中的每个球,将其上写的整数替换为该整数加上 $X_i$。
3. 从袋中取出写有最小整数的球(如果有多个这样的球,取出其中一个)。记录这个球上的整数并将其丢弃。
对于每个类型为 3 的操作,请按顺序输出记录的整数。
## 输入格式
输入格式如下:
$Q$
$query_1$
$query_2$
$\vdots$
$query_Q$
每个 $query_i$ 的格式如下三者之一:
- $1$ $X_i$
- $2$ $X_i$
- $3$
第一个数字是 $1 \leq P_i \leq 3$,表示操作类型。如果 $P_i=1$ 或 $P_i=2$,后面会跟一个空格和 $X_i$。
## 输出格式
对于每个 $P_i=3$ 的操作,在单独的一行中输出记录的整数。
## 输入输出样例
### 输入样例1
```
5
1 3
1 5
3
2 2
3
```
### 输出样例1
```
3
7
```
### 输入样例2
```
6
1 1000000000
2 1000000000
2 1000000000
2 1000000000
2 1000000000
3
```
### 输出样例2
```
5000000000
```
## 数据范围与提示
【样例说明1】
小高将进行以下操作:
1. 在一个球上写3并放入袋中。
2. 在一个球上写5并放入袋中。
3. 袋中现在有一个写着3的球和一个写着5的球。取出较小的那个,即3。记录3并丢弃。
4. 袋中现在只有一个写着5的球。将这个整数替换为5+2=7。
5. 袋中现在只有一个写着7的球。取出这个球,记录7,并丢弃。
因此,我们应该按顺序输出3和7。
【样例说明2】
注意输出可能不适合32位整数。
【数据范围】
- $1 \leq Q \leq 2\times 10^5$
- $ 1 \leq P_i \leq 3$
- $1 \leq X_i \leq 10^9$
- 所有输入都是整数。
- 至少有一个 $i$ 满足 $P_i=3$。
- 如果 $P_i=3$,那么在第 $i$ 次操作之前袋中至少有一个球。
## 题目来源
ABC212D