問題一覧 > 通常問題

No.2225 Treasure Searching Rod (Easy)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 169
作問者 : 👑 AngrySadEight / テスター : akakimidori hari64
0 ProblemId : 8910 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-01-22 17:08:18

この問題は「Treasure Searching Rod (Hard)」と同じ設定の問題で,制約のみが異なります.

問題文

HHWW 列のマス目があり,iijj 列目のマスを (i,j)(i,j) で表します.

このマス目の中の KK マスには,「宝」が 1010010^{100} 個ずつ置かれています.kk 番目の宝はマス (xk,yk)(x_k, y_k) にあり,その 11 個あたりの価値は vkv_k です.

さて,次に示す操作を,「マス (i,j)(i,j) に対する操作」と呼びます.

マス (i,j)(i,j) に対して次の条件を全て満たすマス (x,y)(x,y) に宝があれば,マス (x,y)(x,y) にある宝を 11 つずつ獲得する.

  • x+yi+jx + y \geq i + j
  • xyijx - y \geq i - j

あなたは,1iH,1jW1 \leq i \leq H, 1 \leq j \leq W を満たす全てのマス (i,j)(i,j) に対する操作を 11 回ずつ行いました.このとき,獲得した宝の価値の総和を 998244353998244353 で割った余りを求めてください.

制約

  • 入力はすべて整数である.
  • 1H,W501 \leq H,W \leq 50
  • 0KHW0 \leq K \leq HW
  • 1xkH1 \leq x_k \leq H
  • 1ykW1 \leq y_k \leq W
  • 0vk1090 \leq v_k \leq 10^9
  • (xk,yk)(xl,yl)(kl)(x_k, y_k) \neq (x_l, y_l) (k \neq l)

入力

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

HH WW KK
x1x_1 y1y_1 v1v_1
x2x_2 y2y_2 v2v_2
\vdots
xKx_K yKy_K vKv_K

出力

獲得した宝の価値の総和を 998244353998244353 で割った余りを出力せよ.

サンプル

サンプル1
入力
3 3 4
1 2 4
2 1 5
2 2 6
3 1 2
出力
55

マス目と,そこに置かれている宝の価値は,次の図のようになります.

2022-10-28-150226

例えば,マス (1,2)(1,2) に対する操作で,宝を獲得できる範囲を次に示します.

2022-10-28-150254
  • マス (1,1)(1,1) に対する操作で獲得できる宝の価値は,5+6+2=135+6+2=13 です.
  • マス (1,2)(1,2) に対する操作で獲得できる宝の価値は,4+5+6+2=174+5+6+2=17 です.
  • マス (1,3)(1,3) に対する操作で獲得できる宝の価値は,6+2=86+2=8 です.
  • マス (2,1)(2,1) に対する操作で獲得できる宝の価値は,5+2=75+2=7 です.
  • マス (2,2)(2,2) に対する操作で獲得できる宝の価値は,6+2=86+2=8 です.
  • マス (2,3)(2,3) に対する操作で宝は獲得できません.
  • マス (3,1)(3,1) に対する操作で獲得できる宝の価値は,22 です.
  • マス (3,2)(3,2) に対する操作で宝は獲得できません.
  • マス (3,3)(3,3) に対する操作で宝は獲得できません.

したがって,獲得した宝の価値の総和は,13+17+8+7+8+2=5513+17+8+7+8+2=55 となります.

サンプル2
入力
3 8 4
2 2 10
2 3 10
3 2 20
3 5 30
出力
510

例えば,マス (1,4)(1,4) に対する操作で宝を獲得できる範囲は次の図の通りです.

2022-12-06-184418
サンプル3
入力
2 3 2
1 2 1000000000
2 3 1000000000
出力
7022588

宝の価値の総和を 998244353998244353 で割った余りを出力してください.

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。