AT_abc471_d [ABC471D] Chargers

题目描述

有一个带有无限多个插口的充电器。在时刻 $0$ 时,所有插口都是空的。 电池的最大容量为 $V$。电池在插入插口期间,会以速度 $1$ 充电,直到剩余电量达到最大容量(即每经过 $1$ 单位时间,剩余电量增加 $1$)。 按顺序处理 $Q$ 个查询。第 $q$ 个查询格式如下(保证 $t_1 < \dots < t_Q$): - **类型 1**$(1$ $t_q$ $w_q)$:在时刻 $t_q$,将一个剩余电量为 $w_q$ 的电池插入一个插口。 - **类型 2**$(2$ $t_q)$:在时刻 $t_q$,从插口中取出剩余电量最多的一个电池,并输出其剩余电量。如果所有插口都是空的,则输出 $-1$。

输入格式

输入第一行包含两个整数 $Q, V$。 接下来 $Q$ 行,每行描述一个查询,格式为以下两种之一: > $1$ $t_q$ $w_q$ > $2$ $t_q$

输出格式

设类型 $2$ 查询的数量为 $x$。输出 $x$ 行,第 $k$ 行输出第 $k$ 个类型 $2$ 查询的答案。

说明/提示

**【样例 1 解释】** 按以下顺序处理 $7$ 个查询: 1. 时刻 $15$,插入剩余电量 $60$ 的电池。此时充电器中有一个剩余电量为 $60$ 的电池。 2. 时刻 $25$,插入剩余电量 $80$ 的电池。此时充电器中有剩余电量为 $70, 80$ 的两个电池。 3. 时刻 $30$,此时充电器中有剩余电量为 $75, 85$ 的两个电池。取出剩余电量最多的 $85$ 并输出。 4. 时刻 $45$,插入剩余电量 $0$ 的电池。此时充电器中有剩余电量为 $0, 90$ 的两个电池。 5. 时刻 $60$,此时充电器中有剩余电量为 $15, 100$ 的两个电池。取出剩余电量最多的 $100$ 并输出。 6. 时刻 $70$,此时充电器中有一个剩余电量为 $25$ 的电池。取出并输出 $25$。 7. 时刻 $80$,充电器中没有电池,输出 $-1$。 **【数据范围】** - $1 \le Q \le 3 \times 10^5$; - $1 \le V \le 10^9$; - 对于类型 $1$ 查询:$1 \le t_q \le 10^9$,$0 \le w_q \le V$; - 对于类型 $2$ 查询:$1 \le t_q \le 10^9$; - $t_1 < \dots < t_Q$; - 所有输入值均为整数。