图形变换问题

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

给定2 个4×4 方格阵列组成的图形A 和B,每个方格的颜色为黑色或白色。方格阵列中有公共边的方格称为相邻方格。图形变换问题的每一步变换可以交换相邻方格的颜色。试设计一个算法,计算最少需要多少步变换,才能将图形A变换为图形B。

对于给定的2 个方格阵列,计算将图形A变换为图形B的最少变换次数。

Input

输入数据的前4 行是图形A 的方格阵列,后4 行是图形B 的方格阵列。0 表示白色,1表示黑色。

Output

将计算出的最少变换次数和相应的变换序列输出。第1 行是最少变换次数。从第2 行开始,每行用4 个数表示一次变换。例如,1112 表示交换方格(1,1)和(1,2)的颜色。问题无解时输出“No solution!”

Sample Input

1010
0100
0010
1010
0110
0001
0010
1010

Sample Output

3
1112
2223
2324

Hint

 

Source