已结束 GESP挑战赛#26

A7058 | 午枫的玩具火车

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

小午新买了一个玩具火车,一共有 $n$ 节车厢,编号 $1\sim n$,每一节车厢都有头部和尾部之分并且都可以进行连接和分离。一开始,所有的火车车厢都是分开的,互不连接。

现在小枫会按顺序进行 $q$ 次操作,每次操作为以下 $3$ 中类型中的一种:

+ 1 x y :将车厢 $x$ 的尾部与车厢 $y$ 的头部连接。执行该操作前,保证以下条件成立:
+ $x\neq y$
+ 在执行该操作前,车厢 $x$ 的尾部没有连接其他车厢
+ 在执行该操作前,车厢 $y$ 的头部没有连接其他车厢
+ 在执行该操作前,车厢 $x$ 和车厢 $y$ 属于不同的火车
+ 2 x y :将车厢 $x$ 的尾部与车厢 $y$ 的头部分离。 执行该操作前,保证以下条件成立:
+ $x \neq y$
+ 在执行该操作前,车厢 $x$ 的尾部与车厢 $y$ 的头部直接连接
+ 3 x :先输出对应车厢所在火车的车厢数量,再输出包含车厢 $x$ 的火车中所有车厢的编号,按从头到尾的顺序输出。

输入格式

第一行输入两个整数 $n,q$ ,分别表示车厢的个数和操作的次数。

接下来 $q$ 行,每行的输入格式及意义见题面所示。

输出格式

对于每一个第 $3$ 类操作,先输出对应车厢所在火车的车厢数量,然后从头到尾将所在火车的所有车厢编号按顺序输出。

每个第 $3$ 类操作的输出占一行。

输入输出样例

输入 #1
7 14
1 6 3
1 4 1
1 5 2
1 2 7
1 3 5
3 2
3 4
3 6
2 3 5
2 4 1
1 1 5
3 2
3 4
3 6
输出 #1
5 6 3 5 2 7
2 4 1
5 6 3 5 2 7
4 1 5 2 7
1 4
2 6 3
C++ 编辑器
输入
输出