#2023. 超级汉诺塔
超级汉诺塔
题目描述
三个柱子编号分别为、、初始时个盘子按照编号上小下大的次序放在第一个柱子上,需要将所有的盘子由柱子移至柱子。限制是:第一、任何时候,只 能编号小的盘子放在大的盘子上面;第二、只能在柱子、和柱子、间移动,不能直接在柱子、间移动。现在有两个人和同时移动柱子 ,只负责在柱子、之间移动盘子,只负责在柱子、之间移动盘子,每人每秒最多只能移动一个盘子,也就是说可以在进行柱子、间的移动的同时(即同一秒内)由进行柱子、间的移动,当然也可以有一个人闲着。要求输出移动的最短时间以及最优方案中从第步开始的个具体步骤。
输入格式
第一行有一个整数和一个回车换行符,代表共有个盘子放在第一根柱子上。
第二行有两个整数,分别是和。表示你需要输出从第个步骤开始的个步骤。
输出格式
第一行输出一个整数,表示需要的总时间(秒数)。
第二行起的行,分别表示从第秒开始的秒的行动,每行表示一秒,用四个整数表示:前两个整数表示左边的那个人将几号盘子移到了几号柱子上,后两个整数表示右边的那个人将几号盘子移到了几号柱子上,如果某人在这一秒没有行动,则相应的整数为。输出以换行回车符结尾。
样例
输入样例
2
1 6
输出样例
6
1 2 0 0
2 2 1 3
0 0 1 2
1 1 2 3
1 2 0 0
0 0 1 3
提示