#P1735. A Game on the Chessboard

A Game on the Chessboard

描述

在一个4×44×4大小的棋盘上有88颗白色棋子和88颗黑色棋子,也就是说每个格子上有一颗棋子。这样的棋子布局被称为一种游戏局面。如果两颗棋子所在的格子有一条公共边,那么这两颗棋子是相邻的(即它们在水平方向或垂直方向相邻,而不是在对角方向相邻)。这意味着每颗棋子最多有44个相邻的棋子。在我们的游戏中,唯一合法的走法是交换任意两个相邻的棋子。你的任务是找到将给定的起始游戏局面转变为给定的最终游戏局面的最短走法序列。

输入

起始游戏局面在输入的前44行中描述。每行有44个符号,从左到右定义了该行中每颗棋子的颜色。这些行从上到下描述了棋盘的各行。符号“00”表示一颗白色棋子,符号“11”表示一颗黑色棋子。行中的符号之间没有空格分隔。第55行是空行。接下来的44行以同样的方式描述了最终游戏局面。

输出

输出的第一行包含走法的数量。接下来的各行描述了游戏过程中的走法序列。一行描述一步走法,它包含44个用单个空格分隔的正整数R1R_1 C1C_1 R2R_2 C2C_2。这些是该步走法中相邻格子的坐标,即格子[R1R_1,C1C_1]和[R2R_2,C2C_2],其中R1R_1(或R2R_2)是行号,C1C_1(或C2C_2)是列号。棋盘上的行从11(最上面一行)到44(最下面一行)编号,列也从11(最左边一列)到44(最右边一列)编号(即左上角格子的坐标是[11,11])。如果有多个将起始局面转变为最终局面的最短走法序列,你可以输出其中任意一个。

输入数据 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