問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
グリッド状の盤面で上下左右の移動を繰り返して、プレイヤーが左上のスタートから右下のゴールまで移動するときに通るマス (スタート、ゴール含む) のコストの合計の最小値を求めてください。
さらに対応する経路をゴールからスタートまでの順序で出力してください。なお、コストが最小になるような経路は 1 つであることが保証されます。
※この問題は、paiza開発日誌で詳しく解説しています
h w
t_{0,0} t_{0,1} ... t_{0,w-1}
t_{1,0} t_{1,1} ... t_{1,w-1}
...
t_{h-1,0} t_{h-1,1} ... t_{h-1,w-1}
コストの合計の最小値を 1 行目に出力してください。
続けて、ゴールからスタートまでの経路を以下のように盤面の並びとして出力してください。
--
盤面_1
--
盤面_2
...
--
盤面_n
t_{0,0} t_{0,1} ... t_{0,w-1}
t_{1,0} t_{1,1} ... t_{1,w-1}
...
t_{h-1,0} t_{h-1,1} ... t_{h-1,w-1}
*
を出力してください。すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ h , w ≦ 20
・ 0 ≦ t_{i,j} ≦ 100 (0 ≦ i < h, 0 ≦ j < w)
3 6
0 3 1 4 1 5
9 2 6 5 3 5
3 9 7 9 3 2
17
--
0 3 1 4 1 5
9 2 6 5 3 5
3 9 7 9 3*2
--
0 3 1 4 1 5
9 2 6 5 3 5
3 9 7 9*3 2
--
0 3 1 4 1 5
9 2 6 5*3 5
3 9 7 9 3 2
--
0 3 1 4*1 5
9 2 6 5 3 5
3 9 7 9 3 2
--
0 3 1*4 1 5
9 2 6 5 3 5
3 9 7 9 3 2
--
0 3*1 4 1 5
9 2 6 5 3 5
3 9 7 9 3 2
--
0*3 1 4 1 5
9 2 6 5 3 5
3 9 7 9 3 2
--
*0 3 1 4 1 5
9 2 6 5 3 5
3 9 7 9 3 2