AT_abc089_d [ABC089D] Practical Skill Test

Description

[problemUrl]: https://atcoder.jp/contests/abc089/tasks/abc089_d $ H $ 行 $ W $ 列のマス目があり、$ i $ 行目の $ j $ 列目のマスをマス $ (i,j) $ と呼びます。 このマス目には $ 1 $ から $ H×W $ までの整数が重複なく書かれており、マス $ (i,j) $ に書かれている整数は $ A_{i,j} $ です。 魔法少女であるあなたは、魔力 $ |x-i|+|y-j| $ を消費することでマス $ (i,j) $ に置かれた駒をマス $ (x,y) $ に瞬間移動させることができます。 あなたは、魔法少女としての能力を計るために、$ Q $ 回の実技試験を受けなければなりません。 $ i $ 回目の実技試験は、以下の手順で行われます。 - 初めに、駒が整数 $ L_i $ の書かれているマスに置かれている。 - 駒の置かれているマスに書かれている整数を $ x $ とする。$ x $ が $ R_i $ でない限り、駒を $ x+D $ の書かれているマスに移動することを繰り返す。$ x=R_i $ となったら終了する。 - ただし、$ R_i-L_i $ が $ D $ の倍数であることは保証される。 それぞれの実技試験に対し、あなたの消費する魔力の総和を求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ H $ $ W $ $ D $ $ A_{1,1} $ $ A_{1,2} $ $ ... $ $ A_{1,W} $ $ : $ $ A_{H,1} $ $ A_{H,2} $ $ ... $ $ A_{H,W} $ $ Q $ $ L_1 $ $ R_1 $ $ : $ $ L_Q $ $ R_Q $

Output Format

それぞれの実技試験に対し、あなたの消費する魔力の総和を出力せよ。 ただし、出力する順番は実技試験の行われる順とすること。

Explanation/Hint

### 制約 - $ 1\ \leq\ H,W\ \leq\ 300 $ - $ 1\ \leq\ D\ \leq\ H×W $ - $ 1\ \leq\ A_{i,j}\ \leq\ H×W $ - $ A_{i,j}\ \neq\ A_{x,y}\ ((i,j)\ \neq\ (x,y)) $ - $ 1\ \leq\ Q\ \leq\ 10^5 $ - $ 1\ \leq\ L_i\ \leq\ R_i\ \leq\ H×W $ - $ (R_i-L_i) $ は $ D $ の倍数 ### Sample Explanation 1 \- $ 4 $ が書かれたマスは、マス $ (1,2) $ です。 - $ 6 $ が書かれたマスは、マス $ (3,3) $ です。 - $ 8 $ が書かれたマスは、マス $ (3,1) $ です。 よって、$ 1 $ 回目の実技試験であなたの消費する魔力の総和は、$ (|3-1|+|3-2|)+(|3-3|+|1-3|)=5 $ です。 ### Sample Explanation 2 駒を全く移動しない実技試験が存在する場合や、複数の実技試験の内容が同じ場合に注意してください。