配点 : 500 点
問題文
R 行 C 列に並んだマス目に K 個のアイテムが置いてあります。1≤i≤R 行目、 1≤j≤C 列目のマスを (i,j) と表すとき、i 番目のアイテムはマス (ri,ci) に存在し、その価値は vi です。
高橋君はマス (1,1) からスタートしてゴールのマス (R,C) まで移動します。高橋君はマス (i,j) にいるとき、次には (存在すれば) マス (i+1,j) またはマス (i,j+1) に移動することができます。
高橋君は通ったマス (スタートとゴールも含む) のアイテムを拾うことができます。ただし、マス目の同じ行では 3 個までしかアイテムを拾うことができません。通ったマスにアイテムがある場合に、そのアイテムを拾わないことはできます。
高橋君が拾うことのできるアイテムの価値の合計としてありうる値の最大値を求めてください。
制約
- 1≤R,C≤3000
- 1≤K≤min(2×105,R×C)
- 1≤ri≤R
- 1≤ci≤C
- (ri,ci)=(rj,cj)(i=j)
- 1≤vi≤109
- 入力は全て整数である
入力
入力は以下の形式で標準入力から与えられる。
R C K
r1 c1 v1
r2 c2 v2
:
rK cK vK
出力
高橋君が拾うことのできるアイテムの価値の合計としてありうる値の最大値を出力せよ。
移動の方法は以下の 2 通りあります。
- マス (1,1) 、マス (1,2)、マス (2,2) の順に移動する。このとき拾うことのできるアイテムの価値の合計は 3+5=8 である。
- マス (1,1) 、マス (2,1)、マス (2,2) の順に移動する。このとき拾うことのできるアイテムの価値の合計は 3+4=7 である。
よって、高橋君が拾うことのできるアイテムの価値の合計としてありうる値の最大値は 8 です。
1 行目にアイテムが 4 個あります。次のように移動してアイテムを拾う方法が最適です。
- マス (1,1) 、マス (1,2)、マス (1,3)、マス (1,4) 、マス (2,4)、マス (2,5) の順に移動する。このうちマス (1,2) にあるアイテムのみ拾わないことにすると、アイテムの価値の合計は 3+4+2+20=29 である。