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 翻译