3384:【2024年2月】3级算法等考第一题 汉诺塔1
文件提交:无需freopen
内存限制:256 MB
时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
1
提交:0
解决:0
题目描述
## Description
汉诺塔(Hanoi Tower)是一种源自古老传说的益智游戏。从左到右有A,B,C三根柱子,A柱上有N个(N>1)穿孔圆盘,圆盘的尺寸由下到上依次变小。这个游戏的目标是将所有圆盘移动到C柱,提示:可将圆盘临时置于B柱,也可将从A柱移出的圆盘重新移回A柱,但都必须遵循以下两条规则:
1. 每次只能移动某一个柱子最上面的圆盘。
2. 大圆盘不能叠在小圆盘的上面。

元元想记录按照最优策略游戏时,每移动一步后A、B、C三根柱子上的圆盘数量。
例如,当有三个圆盘时,其移动过程如下:

从A柱移到C柱,三根柱字上的国盘数量分别是 2 0 1
2. 从A柱移到B柱,三根柱子上的圆盘数量分别是 1 1 1
3. 从C柱移到B柱,三根柱子上的圆盘数量分别是 1 2 0
4. 从A柱移到C柱,二根柱子上的圆盘数量分别是 0 2 1
5. 从B柱移到A柱,三根柱子上的圆盘数量分别是 1 1 1
6. 从B柱移到C柱,三根柱子上的圆盘数量分别是 1 0 2
7. 从A柱移到C柱,三根柱子上的圆盘数量分别是 0 0 3
可以看到,最少7步就完成了所有圆盘的移动。
要将n块圆盘从A柱移动到C柱,按照最优策略,请计算第k次移动之后,三根柱子上面的圆盘数量分别是多少?
## Input Format
一行,包含两个整数n,k,分别表示圆盘的数量和移动次数。
测试点1~10:3 ≤ n ≤ 20,0 < k < 2^n
## Output Format
一行,包含三个整数,分别表示A、B、C三根柱子上的圆盘数量。
```input1
3 5
```
```output1
1 1 1
```