#P1735. A Game on the Chessboard
A Game on the Chessboard
描述
在一个大小的棋盘上有颗白色棋子和颗黑色棋子,也就是说每个格子上有一颗棋子。这样的棋子布局被称为一种游戏局面。如果两颗棋子所在的格子有一条公共边,那么这两颗棋子是相邻的(即它们在水平方向或垂直方向相邻,而不是在对角方向相邻)。这意味着每颗棋子最多有个相邻的棋子。在我们的游戏中,唯一合法的走法是交换任意两个相邻的棋子。你的任务是找到将给定的起始游戏局面转变为给定的最终游戏局面的最短走法序列。
输入
起始游戏局面在输入的前行中描述。每行有个符号,从左到右定义了该行中每颗棋子的颜色。这些行从上到下描述了棋盘的各行。符号“”表示一颗白色棋子,符号“”表示一颗黑色棋子。行中的符号之间没有空格分隔。第行是空行。接下来的行以同样的方式描述了最终游戏局面。
输出
输出的第一行包含走法的数量。接下来的各行描述了游戏过程中的走法序列。一行描述一步走法,它包含个用单个空格分隔的正整数 。这些是该步走法中相邻格子的坐标,即格子[,]和[,],其中(或)是行号,(或)是列号。棋盘上的行从(最上面一行)到(最下面一行)编号,列也从(最左边一列)到(最右边一列)编号(即左上角格子的坐标是[,])。如果有多个将起始局面转变为最终局面的最短走法序列,你可以输出其中任意一个。
输入数据 1
1111
0000
1110
0010
1010
0101
1010
0101
输出数据 1
4
1 2 2 2
1 4 2 4
3 2 4 2
4 3 4 4
来源
CEOI 1999