数字矩阵——高级

 1 Sec 64 MB |  显示标签
114169
通过提交

题目描述

小明得到了一个数字矩阵,这个矩阵共有N行,M列。他想要知道是否可以通过若干次平移操作,使得这个矩阵的左上角的值,正是他想要得到的值。
平移操作一共有4种:左移,右移,上移,下移。

从上图可以看出,若只有一列,左移和右移是没有效果的。。。若只有一行,则上移和下移是没有效果的。
现在小明想要知道最少移动多少次可以使得左上角的值是他想要的固定值。若没有可能通过平移得到,输出-1

输入格式

第一个数表示每组文件输入数据组数T(T<=100)。
每组测试数据第一行包含两个数N和M。 (1<=N,M<=50)
接下来一行N行,表示数字矩阵。
最后一个数字,表示小明希望左上角出现的数字

输出格式

输出T行。输出最少几次变换就可以达到目标,无法完成输出-1

样例输入 #1

5
4 3
136
427
568
309
2
3 4
0000
0000
0099
9
1 10
0123456789 
7
2 3
555
555
1
4 11
12417727123
65125691886
55524912622
12261288888
9

样例输出 #1

2
2
3
-1
6

 上传者
coach
 创建时间
2012-11-13 12:22