#ABC471D. 充电器 / Chargers

    ID: 19553 传统题 2000ms 256MiB 尝试: 65 已通过: 34 显示难度普及+/提高− 上传者: 标签>AtCoder数据结构堆(优先队列)

充电器 / Chargers

题目描述

有一个充电器,它拥有无限多个充电插槽。在时刻 00,所有插槽都是空的。

电池的最大容量为 VV。当一块电池插在插槽中时,它会以 11 的速率充电,直到电量达到最大容量(也就是说,每经过 11 单位时间,电量增加 11)。

按顺序处理 QQ 个询问。第 qq 个询问以下列格式之一给出。在此保证 t1<<tQt_1 < \dots < t_Q

  • 类型 111 tq wq1\ t_q\ w_q):在时刻 tqt_q,把一块电量为 wqw_q 的电池插入一个插槽。
  • 类型 222 tq2\ t_q):在时刻 tqt_q,从插槽中拔出一块电量最高的电池,并输出该电池的电量。如果所有插槽中都没有电池,则输出 1-1

数据范围

  • 1Q3×1051 \leq Q \leq 3 \times 10^5
  • 1V1091 \leq V \leq 10^9
  • 对于类型 11 的询问,1tq1091 \leq t_q \leq 10^9
  • 对于类型 11 的询问,0wqV0 \leq w_q \leq V
  • 对于类型 22 的询问,1tq1091 \leq t_q \leq 10^9
  • t1<<tQt_1 < \dots < t_Q
  • 输入中的所有值均为整数。

输入格式

输入从标准输入读入,格式如下:

  • QQ VV
  • query1\mathrm{query}_1
  • \vdots
  • queryQ\mathrm{query}_Q

其中 queryq\mathrm{query}_q 表示第 qq 个询问,以下列两种格式之一给出:

  • 11 tqt_q wqw_q

  • 22 tqt_q

输出格式

设类型 22 的询问共有 xx 个。输出 xx 行。

kk 行(1kx1 \leq k \leq x)应包含第 kk 个类型 22 询问需要输出的值。

7 100
1 15 60
1 25 80
2 30
1 45 0
2 60
2 70
2 80
85
100
25
-1

这七个询问按如下顺序处理。

  • 在时刻 1515,插入一块电量为 6060 的电池。此时充电器中有一块电量为 6060 的电池。
  • 在时刻 2525,插入一块电量为 8080 的电池。此时充电器中有电量分别为 70,8070, 80 的电池。
  • 在时刻 3030,充电器中有电量分别为 75,8575, 85 的电池。其中电量为 8585 的电池被拔出。
  • 在时刻 4545,插入一块电量为 00 的电池。此时充电器中有电量分别为 0,900, 90 的电池。
  • 在时刻 6060,充电器中有电量分别为 15,10015, 100 的电池。其中电量为 100100 的电池被拔出。
  • 在时刻 7070,充电器中有一块电量为 2525 的电池。这块电量为 2525 的电池被拔出。
  • 在时刻 8080,充电器中没有插任何电池。因此没有电池被拔出。
20 380736236
1 21873985 256702097
2 86369729
1 114301317 288304981
1 147244640 305840435
2 150951976
1 331581391 50335458
1 352989552 47577202
1 400130024 345362760
2 458793150
2 509082216
1 591375600 197371572
1 617022014 101276068
1 679649471 310249627
1 796351653 268586022
1 825648347 129608152
2 908069704
2 921770319
1 949684819 372272469
1 971850999 335461408
2 986253026
321197841
324955640
380736236
380736236
380736236
380736236
380736236

子任务设置

  • 子任务 1(120 分):Q2000Q \le 2000
  • 子任务 2(280 分):无特殊限制。