Home => ProblemSet => 2.18-07:黑白棋游戏
Problem1933--2.18-07:黑白棋游戏

1933: 2.18-07:黑白棋游戏

Time Limit: 1 Sec  Memory Limit: 128 MB  Submit: 0  Solved: 0
[ Submit ] [ Status ] [ Creator: ][ 参考程序 ]

Description

黑白棋游戏的棋盘由 4×4 方格阵列构成。棋盘的每一方格中放有 1 枚棋子,共有 8 枚白棋子和 8 枚黑棋子。
这 16 枚棋子的每一种放置方案都构成一个游戏状态。在棋盘上拥有 1 条公共边的 2 个方格称为相邻方格。
一个方格最多可有 4 个相邻方格。在玩黑白棋游戏时,每一步可将任何 2 个相邻方格中棋子互换位置。
对于给定的初始游戏状态和目标游戏状态,编程计算从初始游戏状态变化到目标游戏状态的最短着棋序列。

Input

输入文件共有 8 行。前四行是初始游戏状态,后四行是目标游戏状态。
每行 4 个数分别表示该行放置的棋子颜色。“ 0 ”表示白棋;“ 1 ”表示黑棋。

Output

输出文件的第一行是着棋步数 n。接下来 n 行,每行 4 个数分别表示该步交换棋子的两个相邻方格的位置。
例如,abcd 表示将棋盘上 (a,b) 处的棋子与 (c,d) 处的棋子换位。

Sample Input Copy

1111
0000
1110
0010
1010
0101
1010
0101

Sample Output Copy

4
1222
1424
3242
4344

Source/Category