AT_abc298_c [ABC298C] Cards Query Problem

题目描述

有 $N$ 个编号从 $1$ 到 $N$ 的空箱子,以及无数张没有写字的卡片。 现在有 $Q$ 个操作,请按顺序处理。每个操作有以下三种类型之一: - `1 i j` :选一张卡片,在上面写上数字 $i$,然后把这张卡片放进编号为 $j$ 的箱子里。 - `2 i` :请按**升序**输出编号为 $i$ 的箱子中所有卡片上写的数字。 - `3 i` :请按**升序**输出所有包含写有数字 $i$ 的卡片的箱子的编号。 请注意以下几点: - 对于第 $2$ 种操作,如果箱子 $i$ 中有多张卡片上写着相同的数字,则该数字需要输出与卡片数量相同的次数。 - 对于第 $3$ 种操作,如果某个箱子中有多张卡片都写着数字 $i$,该箱子的编号只输出一次。

输入格式

输入按以下格式从标准输入读入。 > $N$ $Q$ > $\mathrm{query}_1$ > $\mathrm{query}_2$ > $\vdots$ > $\mathrm{query}_Q$ 其中,$\mathrm{query}_q$ 表示第 $q$ 个操作,格式如下之一: > $1$ $i$ $j$ > $2$ $i$ > $3$ $i$

输出格式

对于第 $2$ 种和第 $3$ 种操作,请按顺序输出答案。 每个操作输出的元素请按**升序**、用空格分隔,并且每个操作输出一行。

说明/提示

### 限制条件 - $1 \leq N, Q \leq 2 \times 10^5$ - 对于第 $1$ 种操作: - $1 \leq i \leq 2 \times 10^5$ - $1 \leq j \leq N$ - 对于第 $2$ 种操作: - $1 \leq i \leq N$ - 保证操作时箱子 $i$ 中至少有一张卡片 - 对于第 $3$ 种操作: - $1 \leq i \leq 2 \times 10^5$ - 保证操作时存在至少一个箱子中有写着数字 $i$ 的卡片 - 所有需要输出的数字总数不超过 $2 \times 10^5$ - 输入均为整数 ### 样例解释 1 依次处理操作如下: - 在卡片上写 $1$,放入箱子 $1$。 - 在卡片上写 $2$,放入箱子 $4$。 - 在卡片上写 $1$,放入箱子 $4$。 - 箱子 $4$ 中卡片上的数字为 $1, 2$。 - 请按 $1, 2$ 的顺序输出。 - 在卡片上写 $1$,放入箱子 $4$。 - 箱子 $4$ 中卡片上的数字为 $1, 1, 2$。 - 注意 $1$ 需要输出两次。 - 写有 $1$ 的卡片所在的箱子为 $1, 4$。 - 虽然箱子 $4$ 中有两张写有 $1$ 的卡片,但 $4$ 只输出一次。 - 写有 $2$ 的卡片所在的箱子为 $4$。 由 ChatGPT 4.1 翻译