#W2568. 传送棋子
传送棋子
题目描述
我们有一个行数为 H ,列数为 W 的网格。并将1到 H×W这H*W个 整数写入网格中的方格,写在方格 (i,j) 中的整数是 Ai,j 。
魔法少女你可以通过消耗∣x−i∣+∣y−j∣ 点魔法值,将放置在方格(i,j) 的棋子传送到方格(x,y) 。
你现在需要参加 Q 次魔法少女能力的实际测试。
测试方法如下:
首先,在写有Li整数的方格上放置一枚棋子。
假设 x 是写在棋子所占位置上的整数。只要 x 不是 Ri ,就重复将棋子移动到写有整数 x+D 的位置。当 x=Ri出现时,测试结束。
这里可以保证 Ri−Li是 D 的倍数。
求每次测试消耗的魔点总和。
输入格式
第一行3个正整数H,W,D。
接下来H行,在这H行中,第i行第j个数为题目描述的Aij。
接下来是正整数Q,为测试的数量
接下来Q行,每行两个正整数Li和Ri,表示需要将棋子从Li传送到Ri。
输出格式
共Q行,每行一个整数,为将棋子从Li传送到Ri所需要花费的魔点值。
3 3 2
1 4 3
2 5 7
8 9 6
1
4 8
5
</p>
提示
一组测试,棋子需要从写有数字4的位置传送到写有数字8的位置。
4 所在位置为 (1,2) 。第一次传送到6,位置为(3,3),第二次传送到8,位置为(3,1)。
因此,第一次测试所消耗的魔法点数总和为
(∣3−1∣+∣3−2∣)+(∣3−3∣+∣1−3∣)=5 。
1≤H,W≤300
1≤D≤H×W
1≤Ai,j≤H×W
Ai,j≠Ax,y((i,j)≠(x,y))
1≤Q≤105
1≤Li≤Ri≤H×W
(Ri−Li)能被D整除.