#ABC212D. 多重集查询

多重集查询

多重集查询

题目描述

高桥君有很多什么都没写的球,以及一个袋子。初始时袋子是空的。高桥君将进行 QQ 次操作,每次操作是以下三种类型之一。

  • 类型 11:在空白的球上写上整数 XiX_i,并放入袋子中。
  • 类型 22:对于袋子中的每个球,把上面写的整数替换为该整数加上 XiX_i
  • 类型 33:取出袋子中整数最小的球(如果有多个这样的球,取出其中一个)。记录该球上写的整数,然后将其丢弃。

对于每个 1iQ1\le i\le Q,给出第 ii 次操作的类型 PiP_i,以及当操作类型为 1122 时的 XiX_i 的值。按顺序输出类型 33 操作中记录的整数。

输入格式

输入按以下格式从标准输入给出:

QQ
query1query_1
query2query_2
::
queryQquery_Q

22 到第 Q+1Q+1 行中,每个 queryiquery_i 的格式如下:

11 XiX_i

22 XiX_i

33

每行的第一个数字是操作类型 PiP_i,满足 1Pi31 \le P_i \le 3。若 Pi=1P_i=1Pi=2P_i=2,则其后跟一个空格,然后是 XiX_i

输出格式

对于 QQ 次操作中满足 Pi=3P_i=3 的每次操作,将记录的整数单独输出一行。

样例

5
1 3
1 5
3
2 2
3
3
7

高桥君将进行以下操作。

  • 在球上写 33 并放入袋子中。
  • 在球上写 55 并放入袋子中。
  • 袋子中现在有写着 33 的球和写着 55 的球。取出其中较小的球,即 33。记录 33 并将其丢弃。
  • 袋子中现在只有写着 55 的球。将这个整数替换为 5+2=75+2=7
  • 袋子中现在只有写着 77 的球。取出这个球,记录 77,并将其丢弃。

因此,应按记录的顺序输出 3377

6
1 1000000000
2 1000000000
2 1000000000
2 1000000000
2 1000000000
3
5000000000

注意输出可能超出 3232 位整数范围。

数据范围

  • 1Q2×1051 \le Q \le 2\times 10^5
  • 1Pi31 \le P_i \le 3
  • 1Xi1091 \le X_i \le 10^9
  • 输入均为整数。
  • 存在至少一个 ii 使得 Pi=3P_i=3
  • Pi=3P_i=3,则第 ii 次操作前袋子中至少有一个球。
难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
2211
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签