最大落下経路和
高さ
h
、幅 w
のグリッドが与えられたとき、上から下へと移動しながら得られる数値の合計のうち、最大になるものを求める問題です。移動は「下方向に隣接する3つのセル」のみ許されます。つまり、位置 (r, c)
にいるときは (r + 1, c - 1)
, (r + 1, c)
, (r + 1, c + 1)
のいずれかに進むことができます。これを「落下経路和」と呼ぶのは、グリッドの最上段から最下段まで落ちるように移動するためです。求めたいのは、この経路によって得られる合計値の最大値です。ㅤ | o | ㅤ | ㅤ |
↙️ | ⬇️ | ↘️ | ㅤ |
ㅤ | ㅤ | ㅤ | ㅤ |
ㅤ | ㅤ | ㅤ | ㅤ |
入力
最初の行に2つの整数
h
と w
(1 ≤ h, w ≤ 100) が与えられます。続く
h
行には、それぞれ w
個の数値 (-100 ≤ ≤ 100) が順番に与えられます。これらはグリッドの行 r
と列 c
に対応する値を表します。 出力
考えられるすべての落下経路のうち、合計が最大になる値を出力してください。
例
入力 | 出力 |
3 3
2 1 3
6 5 4
7 8 9 | 17 |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB