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$;
- 所有输入值均为整数。