1. paizaラーニングトップ
  2. レベルアップ問題集
  3. 累積和メニュー応用編(言語選択)
  4. 問題一覧 D(Beta)編
  5. 【2 次元上のいもす法の練習問題】 練習問題

累積和メニュー応用編のサムネイル
【2 次元上のいもす法の練習問題】 練習問題 (paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

1 行目に整数 N, Q, M が与えられます。

2 行目以降に N 行 N 列の整数の二次元配列 A が与えられます。

2 + N 行目以降に Q 行に渡って x_i, y_i (1 ≦ i ≦ Q) が与えられます。

A の j 行目 k 列目を A_{k, j} (0 ≦ k ≦ N - 1, 0 ≦ j ≦ N - 1) と表すことにします。

N × N のグリッドがあり、各マスにモンスターが配置されています。各モンスターの体力は A_{k, j} です。

正方形領域の左上の座標を (x_i, y_i) として、M × M の範囲で攻撃力 1 の魔法を放ちます。

全ての魔法を打ち終わった時点での N × N 体のモンスターのうち、何体倒すことができたかをいもす法を用いて求めてください。

入力される値

1 行目に整数 N, Q, M が与えられます。

2 行目以降に N 行 N 列の整数の二次元配列 A が与えられます。

2 + N 行目以降に Q 行に渡って x_i, y_i (1 ≦ i ≦ Q) が与えられます。



N Q M
A_{0, 0} A_{0, 1} ... A_{0, N - 1}
A_{1, 0} A_{1, 1} ... A_{1, N - 1}
...
A_{N - 1, 0} A_{N - 1, 1} ... A_{N - 1, N - 1}
x_1 y_1
x_2 y_2
...
x_Q y_Q


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

全ての魔法を打ち終わった時点での N × N 体のモンスターのうち、何体倒すことができたかをいもす法を用いて求めてください。

末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 2 ≦ N ≦ 10

・ 1 ≦ M ≦ N

・ 1 ≦ A_{k, j} ≦ 100 (0 ≦ k ≦ N - 1, 0 ≦ j ≦ N - 1)

・ 1 ≦ Q ≦ 100

・ 1 ≦ x_i, y_i ≦ N - M + 1 (1 ≦ i ≦ Q)

入力例1

3 1 3
1 2 1
2 1 2
1 2 1
1 1

出力例1

5

入力例2

3 2 2
1 2 1
2 1 2
1 2 1
1 1
2 2

出力例2

3

問題一覧へ戻る

ページの先頭へ戻る