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. 大圆盘不能叠在小圆盘的上面。 ![](/upload/oj.cspoj.com/20241007/By918YzZETfP5YKhtbm7a.png) 元元想记录按照最优策略游戏时,每移动一步后A、B、C三根柱子上的圆盘数量。 例如,当有三个圆盘时,其移动过程如下: ![](/upload/oj.cspoj.com/20241007/By918YzZETfP5YKhtbm7a.png) 从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 ```