#Z01650. 汉诺塔的状态

汉诺塔的状态

题目描述

用1,2,...,n表示n个盘子,称为1号盘,2号盘,...。号数大盘子就大。经典的汉诺塔问题经常作为一个递归的经典例题存在。汉诺塔大家都玩过,就是三根柱子,分别标为1,2,3号柱子,在一号柱子上,从上往下按大小顺序放着7个圆盘,我们要把圆盘从下面开始按大小顺序重新摆放在3号柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘。大家都知道最少需要移动2^7-1次就可以将它完成,我们把这个称为最优解。现在,我们想要知道,在有n个盘子的最优解中,移动到第m步时,每一根柱子上的圆盘分别有多少个,并且从下到上是多少号。

输入格式

第1行是整数T,表示有T组数据,下面有T行 每行2个整数n (1 ≤ n ≤ 63) ,m≤ 2^n-1

输出格式

输出分为三行,每个柱子上有n个盘子,接下去输出n个整数a,表示盘子的号码,从下到上输出盘子的盘子的编号,末尾没有空格,每组数据空一行。

1
7 1
1
7 127
6 7 6 5 4 3 2 
0
1 1

0
0
7 7 6 5 4 3 2 1