CF472E Design Tutorial: Learn from a Game
题目描述
给定 $n \times m$ 的初始矩阵和目标矩阵,你可以进行下面**一次**操作:
选择一个格子,然后与相邻的格子(八联通)交换,可以看作选定的权值移动到这个格子,接着可以继续移动选定的权值到其他相邻格子。
问是否有解,使得起始矩阵变为目标矩阵。
输入格式
第一行两个整数 $n,m(1 \le n,m \le 30)$。
接下来 $n \times m$ 为起始矩阵。
接下来 $n \times m$ 为目标矩阵。
矩阵值域在 $1 \le s_{i,j} \le 900$。
输出格式
无解输出 $-1$。
否则第一行输出一个整数 $k\ (1 \le k \le 10^6)$,代表移动次数。
接下来 $1$ 行两个整数 $x,y$,代表选定的起始点。
接下来 $k-1$ 行每行两个整数 $x,y$,代表移动到的位置。