#ABC298C. 卡片查询问题

卡片查询问题

卡片查询问题

题目描述

我们有 NN 个编号为 11 到 NN 的盒子,初始时均为空,另有无限张空白卡片。

按顺序处理 QQ 个查询,查询共有以下三种类型。

1 i j : 在一张空白卡片上写上数字 ii,放入盒子 jj。

2 i : 将盒子 ii 中所有卡片上写有的数字按升序输出。

3 i : 将所有含有写有数字 ii 的卡片的盒子编号按升序输出。

这里,请注意以下几点。

在第二类查询中,如果盒子 ii 中有多张写有相同数字的卡片,该数字要按卡片张数重复输出。

在第三类查询中,即使某个盒子中有多张写有数字 ii 的卡片,该盒子的编号也只输出一次。

输入格式

输入按以下格式从标准输入给出:

NN
QQ
query1\mathrm{query}_1
query2\mathrm{query}_2
⋮\vdots
queryQ\mathrm{query}_Q

其中,queryq\mathrm{query}_q 表示第 qq 个查询,格式为以下三种之一:

11 ii jj

22 ii

33 ii

输出格式

按顺序回答第二类和第三类查询。

对于每个此类查询,将需要输出的元素按升序排成一行,用空格分隔后输出。

样例

5
8
1 1 1
1 2 4
1 1 4
2 4
1 1 4
2 4
3 1
3 2
1 2
1 1 2
1 4
4

按顺序处理查询。

在卡片上写 11,放入盒子 11。

在卡片上写 22,放入盒子 44。

在卡片上写 11,放入盒子 44。

盒子 44 中有写有数字 11 和 22 的卡片。

按此顺序输出 11 和 22。

在卡片上写 11,放入盒子 44。

盒子 44 中有写有数字 11、11 和 22 的卡片。

注意要把 11 输出两次。

盒子 11 和 44 中有写有数字 11 的卡片。

注意即使盒子 44 中有两张写有数字 11 的卡片,44 也只输出一次。

盒子 44 中有写有数字 22 的卡片。

1
5
1 1 1
1 2 1
1 200000 1
2 1
3 200000
1 2 200000
1

数据范围

  • 1≤N,Q≤2×1051 \le N, Q \le 2 \times 10^5
  • 第一类查询:
    • 1≤i≤2×1051 \le i \le 2 \times 10^5
    • 1≤j≤N1 \le j \le N
  • 第二类查询:
    • 1≤i≤N1 \le i \le N
    • 给出该查询时,盒子 ii 中装有卡片。
  • 第三类查询:
    • 1≤i≤2×1051 \le i \le 2 \times 10^5
    • 给出该查询时,存在装有写有数字 ii 的卡片的盒子。
  • 需要输出的数字总数至多为 2×1052 \times 10^5。
  • 输入中的所有值均为整数。
难度 普及
通过率 —
尝试 0
通过 0
ID
2903
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签