1440 - 黑白棋子的移动

有2n个棋子(4 <= n <= 20)排成一行,开始位置为白子全部在左边,黑子全部在右边,最右边有两个空格。


移动棋子的规则是:每次必须同时移动相邻的两个棋子,颜色不限,可以左移,也可以右移,每次都移动到空格位置上。


但不能调换两个棋子的左右位置,并且每次移动必须跳过若干个棋子(不能不跳过其他棋子而平移),


要求最后能移成黑白相间的一行棋子。


请编程打印出移动的过程。


输入

一个整数n (4 <= n <= 20) 。


输出

移动过程,每行为一次移动之后各个棋子的状态(包括最开始尚未移动时的状态)。


白子用小写字母o表示,黑子用“*”表示,空格用“-”表示。


每行开头打印步数,其中“step”与数字之间有一个空格,数字与冒号之间无空格,冒号之后有一个空格,冒号为英文冒号。


棋子的符号(包括空格)之间无空格。


样例

输入

7

输出

step 0: ooooooo*******--
step 1: oooooo--******o*
step 2: oooooo******--o*
step 3: ooooo--*****o*o*
step 4: ooooo*****--o*o*
step 5: oooo--****o*o*o*
step 6: oooo****--o*o*o*
step 7: ooo--***o*o*o*o*
step 8: ooo*o**--*o*o*o*
step 9: o--*o**oo*o*o*o*
step 10: o*o*o*--o*o*o*o*
step 11: --o*o*o*o*o*o*o*

来源

分治

题目参数

时间限制 1 秒
内存限制 32 MB
提交次数 0
通过人数 0
统计

上一题 下一题