#P14590. [LNCPC 2025] 计组实验

[LNCPC 2025] 计组实验

题目描述

在计算机组成原理实验课程中,老师安排了 nn 个实验供同学们选择。

接下来有 mm 个事件按照时间顺序依次发生,每个事件形如下面两种之一:

  • 1 i x1\ i\ x:一个学号为 xx 的学生选择了第 ii 个实验。如果他是第 jj 个选择这个实验的学生,那么他在这个实验的序号是 jj
  • 2 i1 j1 i2 j22\ i_1 \ j_1 \ i_2\ j_2:第 i1i_1 个实验的序号为 j1j_1 的学生与第 i2i_2 个实验的序号为 j2j_2 的学生交换了实验。
    更详细地,如果此前第 i1i_1 个实验的序号为 j1j_1 的学生的学号是 x1x_1,第 i2i_2 个实验的序号为 j2j_2 的学生的学号是 x2x_2,那么此时第 i1i_1 个实验的序号为 j1j_1 的学生的学号是 x2x_2,第 i2i_2 个实验的序号为 j2j_2 的学生的学号是 x1x_1

mm 个事件发生后,老师要打印课程名单。最后请您对于每个实验输出学生数量,以及按照序号从小到大的顺序依次输出对应学生的学号。

输入格式

第一行给定两个整数 n,m(1n,m3×105)n,m(1\le n,m\le 3\times 10^5),分别表示实验个数和事件个数。

接下来 mm 行,每行按照下面两种格式之一,按照时间顺序依次给定每个事件:

  • 1 i x1\ i\ x:一个学号为 xx 的学生选择了第 ii 个实验。保证给定的均为整数,1in,108x<1091\le i\le n,10^{8}\le x <10^{9},此前这个学号为 xx 的学生没有选择过任何一个实验。
  • 2 i1 j1 i2 j22\ i_1 \ j_1 \ i_2\ j_2:第 i1i_1 个实验的序号为 j1j_1 的学生与第 i2i_2 个实验的序号为 j2j_2 的学生交换了实验。保证给定的均为整数,1i1,i2n,i1i21\le i_1,i_2\le n,i_1\not= i_2,第 i1i_1 个实验存在序号为 j1j_1 的学生,第 i2i_2 个实验存在序号为 j2j_2 的学生。

输出格式

输出共 nn 行,其中第 ii 行首先输出选择了第 ii 个实验的学生的数量,然后如果数量不为零,那么按照序号从小到大的顺序依次输出第 ii 个实验对应学生的学号。一行相邻两个整数之间用一个空格隔开。

3 4
1 1 250000001
1 3 250000006
2 3 1 1 1
1 1 250000003

2 250000006 250000003
0
1 250000001

4 9
1 3 835745037
1 3 927149742
1 2 468012503
1 4 314360098
2 3 1 4 1
1 4 501201700
1 3 271374639
2 4 2 2 1
1 3 678882127

0
1 501201700
4 314360098 927149742 271374639 678882127
2 835745037 468012503

提示

对于第一个样例,下面用表格表示在每个事件发生后的课程名单情况:

  • 1 1 2500000011\ 1\ 250000001
序号 11 序号 22
11 个实验 250000001250000001
22 个实验
33 个实验
  • 1 3 2500000061\ 3\ 250000006
序号 11 序号 22
11 个实验 250000001250000001
22 个实验
33 个实验 250000006250000006
  • 2 1 1 3 12\ 1\ 1\ 3\ 1
序号 11 序号 22
11 个实验 250000006250000006
22 个实验
33 个实验 250000001250000001
  • 1 1 2500000031\ 1\ 250000003
序号 11 序号 22
11 个实验 250000006250000006 250000003250000003
22 个实验
33 个实验 250000001250000001