mm在渡渡鸟幼儿园发现一堆黑白猫玩具,mm可是很仰慕围棋大佬,于是决定把它们摆在棋盘上当围棋(并不)玩耍。
黑白猫盘由一个 4×44 \times 44×4 的方格构成,棋盘的每一方格中放有 111 只猫,共有 888 只白猫和 888 只黑猫。在棋盘上拥有1条公共边的2个方格称为相邻方格。在玩黑白猫游戏时,每一步可将任何2个相邻方格中猫互换位置。mm要做的就是通过多次互换位置把给定的初始猫排列状态变成目标猫排列状态。
输入文件共有 888 行。前 444 行是初始猫排列状态,后 444 行是目标猫排列状态。
每行有 444 个数字0或1(无空格),分别表示该行放置的猫颜色,其中 000 表示白猫, 111 表示黑猫。
第一行输出互换步数 nnn 。
接下来 nnn 行,每行 444 个正整数(无空格),分别表示该步交换的两个相邻方格的位置。例如, abcdabcdabcd 表示将棋盘上 (a, b)(a,\ b)(a, b) 处的猫与 (c, d)(c,\ d)(c, d) 处的猫换位。
注意,如果有多种合法方案,你的方案需要保证:
所需步数最小。
输出时保证 (a<c)(a < c)(a<c) 或 (a=c, b<d)(a = c,\ b < d)(a=c, b<d) 。
在满足以上两个条件的前提下,输出字典序最小的方案。
1111 0000 1110 0010 1010 0101 1010 0101
4 1222 1424 3242 4344