虽然九条可怜经常出题,但是她发现要一个人出一场比赛是在是太难了,于是她丢下了手头的出题工作开始玩小游戏。
有一个游戏是汉诺塔的改版。在这个游戏中,盘子的大小可以相同,但是保证了相同大小的盘子恰好有
因为相同大小的盘子的上下顺序没有要求,不难发现合法的终止状态有很多,因此游戏里指定了一种终止状态。游戏的任务是最小化移动的步数。
可怜想了想觉得这个问题好像挺难的,于是她就把这个出到比赛里来给你做啦。
下面给出汉诺塔的具体规则:
- 有三根柱子和若干块圆盘,初始状态下所有圆盘都在第一根柱子上。
- 每一时刻你可以把某一根柱子顶端的圆盘移动到另一根柱子的顶端,目标是把所有盘子都移动到第三根柱子上。
- 移动的过程中必须要保证较大的圆盘不会压在较小的圆盘上。(相同大小的圆盘没有顺序限制)。
输入格式
第一行输入一个整数
每组数据第一行是两个整数
接下来
输出格式
对于每组数据输出一个整数表示最少步数。
样例一
input
3 3 1 1 1 1 1 2 2 1 4 2 2 1 1 2 1 2 2 1
output
7 2 31
样例二
见样例数据下载。
限制与约定
测试点编号 | |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 |
对于 100% 的数据,保证
在实际的测试点中,
时间限制:
空间限制: