#P15790. [2026作业]米兰达的传送巡游
[2026作业]米兰达的传送巡游
题目描述
Lin-Manuel 正沿着一条由 个格子组成的长条前进,格子从左到右编号为 到 。
他从格子 出发,希望最终停在格子 。在整个过程中,他想恰好访问每个格子一次。
从任意格子 出发,他可以普通行走到相邻格子:
- 若 ,可以走到 ;
- 若 ,可以走到 。
此外,他还可以请求朋友 Miranda 施展传送魔法。每次使用魔法时,他可以从当前格子 传送到任意格子 ,但必须满足
Lin-Manuel 不想太麻烦 Miranda,因此希望在完成“从 出发、到 结束、每个格子恰好访问一次”的前提下,使用尽可能少的传送次数。
请输出最少传送次数以及一种对应的访问顺序;如果无论如何都无法完成,输出 。
输入格式
第一行包含一个整数 ,表示测试数据组数。
接下来 行,每行包含三个整数 ,表示长条长度、起点和终点。
输出格式
对于每组数据:
如果无法完成任务,输出一行:
-1
否则,第一行输出一个整数,表示最少需要使用的传送次数。
第二行输出 个两两不同的整数
表示访问格子的顺序。必须满足:
- ;
- ;
- 每个 到 的整数恰好出现一次;
- 相邻两个访问格子之间,要么是普通相邻移动,要么是满足 的一次传送;
- 所用传送次数达到最小。
若有多种最优方案,输出任意一种即可。
数据范围
- ;
- ;
- ;
- ;
- 所有测试数据中 的总和不超过 。
样例
输入
4
5 1 5
6 4 5
7 5 3
4 1 3
输出
0
1 2 3 4 5
1
4 3 2 1 6 5
2
5 4 7 6 1 2 3
-1