AT_abc459_c [ABC459C] Drop Blocks
题目描述
有 $N$ 个格子从左到右排成一行,初始时每个格子中都没有放置方块。
你将得到 $Q$ 个操作,请按顺序依次处理。每个操作有以下两种类型之一:
- `1 x`:在第 $x$ 个格子中放入 $1$ 个方块。然后,如果所有格子中都至少有 $1$ 个方块,则从每个格子中取出 $1$ 个方块。
- `2 y`:输出至少有 $y$ 个方块的格子的个数。
输入格式
输入按以下格式从标准输入给出:
> $N$ $Q$
> $\mathrm{query}_1$
> $\mathrm{query}_2$
> $\vdots$
> $\mathrm{query}_Q$
其中,每个操作 $\mathrm{query}_i\ (1 \leq i \leq Q)$ 按以下格式中的一种给出:
> $1$ $x$
> $2$ $y$
输出格式
假设有 $K$ 个类型为第二种的操作,则需输出 $K$ 行。第 $i$ 行 $(1 \leq i \leq K)$ 输出第 $i$ 个类型为第二种操作的答案。
说明/提示
### 样例解释 1
$N=3$,每个格子初始方块数为 $(0, 0, 0)$。操作依次按以下顺序执行:
- 在第 $1$ 个格子放入 $1$ 个方块,此时还存在没有方块的格子,所以不做其他处理,当前各格子为 $(1, 0, 0)$。
- 在第 $3$ 个格子放入 $1$ 个方块,当前为 $(1, 0, 1)$。
- 在第 $3$ 个格子再放入 $1$ 个方块,当前为 $(1, 0, 2)$。
- 至少有 $1$ 个方块的格子是第 $1$ 个和第 $3$ 个,所以答案是 $2$。
- 至少有 $2$ 个方块的格子只有第 $3$ 个,所以答案是 $1$。
- 在第 $2$ 个格子放入 $1$ 个方块,此时每个格子至少有 $1$ 个方块,因此从每个格子中取出 $1$ 个方块,当前为 $(0, 0, 1)$。
- 至少有 $1$ 个方块的格子只有第 $3$ 个,所以答案是 $1$。
因此,输出依次为 $2, 1, 1$,每行一个。
### 数据范围
- $1 \leq N \leq 3 \times 10^5$
- $1 \leq Q \leq 3 \times 10^5$
- $1 \leq x \leq N$
- $1 \leq y \leq 3 \times 10^5$
- 所有输入为整数
- 至少存在一个类型为第二种操作
由 ChatGPT 5 翻译