#1246. 棋子的移动

棋子的移动

问题描述

具体描述见教材p146: 有2n(n>=4)个棋子排成一行,开始位置为白子全部在左边,黑子全部在右边。例如n=5时:OOOOO*****。移动棋子的规则是:每次必须同时移动相邻两个棋子,颜色不限,可以左移也可右移到空位上去,但不能调换两个棋子的左右位置。每次移动必须路过若干个棋子(不能平移),要求最后能移成黑白相间的一行棋子。如n=5时, 成为__OOOOO*。

格式

输入

仅输入黑棋和白棋的数目n(4<=n<=1000)。

输出

输出各行每一步的移动结果,最后一行输出总移动步数,其中用“O”(大写字母)表示白棋,用“*”表示黑棋。用“__”(两个下划线)表示两个空位。

样例

5
OOOO__****O*
OOOO****__O*
OOO__***O*O*
OOO*O**__*O*
O__*O**OO*O*
O*O*O*__O*O*
__O*O*O*O*O*
step=7

限制

1s, 64MB.