AT_abc217_d [ABC217D] Cutting Woods

题目描述

有一根长度为 $L$ 米的直线木材。 对于 $x = 1, 2, \dots, L-1$,在距离木材左端 $x$ 米的位置上画有标记线 $x$。 现在有 $Q$ 个操作,第 $i$ 个操作由一对数 $(c_i, x_i)$ 表示。 请按照 $i$ 的升序依次处理每个操作,具体如下: - 当 $c_i = 1$ 时:在标记线 $x_i$ 处将木材切成两段。 - 当 $c_i = 2$ 时:选择包含标记线 $x_i$ 的那段木材,并输出其长度。 并且对于所有 $c_i = 1, 2$,保证在处理该操作时,标记线 $x_i$ 尚未被切割过。

输入格式

输入按以下格式从标准输入读入。 > $L$ $Q$ > $c_1$ $x_1$ > $c_2$ $x_2$ > $\vdots$ > $c_Q$ $x_Q$

输出格式

对于每一个 $c_i = 2$ 的操作,输出一行结果。第 $j$ 行输出第 $j$ 个此类操作的答案。

说明/提示

### 数据范围 - $1 \leq L \leq 10^9$ - $1 \leq Q \leq 2 \times 10^5$ - $c_i = 1$ 或 $2$,$1 \leq i \leq Q$ - $1 \leq x_i \leq L-1$,$1 \leq i \leq Q$ - 对于所有 $i$,不存在 $1 \leq j < i$ 使得 $(c_j, x_j) = (1, x_i)$。 - 所有输入均为整数。 ### 样例解释 1 第 1 个操作时,木材尚未被切割,包含标记线 $2$ 的木材长度为 $5$ 米,因此输出 $5$。 第 2 个操作后,木材被分成长度为 $3$ 米和 $2$ 米的两段。 第 3 个操作时,包含标记线 $2$ 的木材长度为 $3$ 米,因此输出 $3$。 由 ChatGPT 4.1 翻译