100 atcoder#ABC089D. [ABC089D] Practical Skill Test

[ABC089D] Practical Skill Test

配点 : 400400

問題文

HHWW 列のマス目があり、ii 行目の jj 列目のマスをマス (i,j)(i,j) と呼びます。

このマス目には 11 から H×WH \times W までの整数が重複なく書かれており、マス (i,j)(i,j) に書かれている整数は Ai,jA_{i,j} です。

魔法少女であるあなたは、魔力 xi+yj|x-i|+|y-j| を消費することでマス (i,j)(i,j) に置かれた駒をマス (x,y)(x,y) に瞬間移動させることができます。

あなたは、魔法少女としての能力を計るために、QQ 回の実技試験を受けなければなりません。

ii 回目の実技試験は、以下の手順で行われます。

  • 初めに、駒が整数 LiL_i の書かれているマスに置かれている。
  • 駒の置かれているマスに書かれている整数を xx とする。xxRiR_i でない限り、駒を x+Dx+D の書かれているマスに移動することを繰り返す。x=Rix=R_i となったら終了する。
  • ただし、RiLiR_i-L_iDD の倍数であることは保証される。

それぞれの実技試験に対し、あなたの消費する魔力の総和を求めてください。

制約

  • 1H,W3001 \leq H,W \leq 300
  • 1DH×W1 \leq D \leq H \times W
  • 1Ai,jH×W1 \leq A_{i,j} \leq H \times W
  • Ai,jAx,y((i,j)(x,y))A_{i,j} \neq A_{x,y} ((i,j) \neq (x,y))
  • 1Q1051 \leq Q \leq 10^5
  • 1LiRiH×W1 \leq L_i \leq R_i \leq H \times W
  • (RiLi)(R_i-L_i)DD の倍数

入力

入力は以下の形式で標準入力から与えられる。

HH WW DD

A1,1A_{1,1} A1,2A_{1,2} ...... A1,WA_{1,W}

::

AH,1A_{H,1} AH,2A_{H,2} ...... AH,WA_{H,W}

QQ

L1L_1 R1R_1

::

LQL_Q RQR_Q

出力

それぞれの実技試験に対し、あなたの消費する魔力の総和を出力せよ。

ただし、出力する順番は実技試験の行われる順とすること。

3 3 2
1 4 3
2 5 7
8 9 6
1
4 8
5
  • 44 が書かれたマスは、マス (1,2)(1,2) です。
  • 66 が書かれたマスは、マス (3,3)(3,3) です。
  • 88 が書かれたマスは、マス (3,1)(3,1) です。

よって、11 回目の実技試験であなたの消費する魔力の総和は、(31+32)+(33+13)=5(|3-1|+|3-2|)+(|3-3|+|1-3|)=5 です。

4 2 3
3 7
1 4
5 2
6 8
2
2 2
2 2
0
0

駒を全く移動しない実技試験が存在する場合や、複数の実技試験の内容が同じ場合に注意してください。

5 5 4
13 25 7 15 17
16 22 20 2 9
14 11 12 1 19
10 6 23 8 18
3 21 5 24 4
3
13 13
2 10
13 13
0
5
0