配点: 800 点
問題文
南極海は、HtimesW のマス目で表されます。海の上から i マス目、左から j マス目の部分を (i,j) で表します。
南極海には多くの氷山があります。探検家のいろはちゃんは、(sx,sy) から (gx,gy) まで、上下左右に隣り合ったマス目への移動を繰り返して移動したいです。氷山があるマス目に移動することはできないので、いくつかの氷山を融かす必要があるかもしれません。
それぞれの氷山には融かすためのコストが決まっています。k 個目の氷山をすべて融かすためのコストは Ck 円です。 いろはちゃんが (sx,sy) から (gx,gy) にたどり着くための最小のコストは何円でしょうか?
氷山は X 個あります。マス (i,j) の状態は Ai,j です。 Ai,j=0 のとき、このマスには氷山がないことを表します。 1leqAi,jleqX のとき、このマスには氷山 Ai,j があることを表します。 ただし、同じ番号がついた氷山のマスは上下左右に連結です。
制約
- 入力はすべて整数
- 1leqH,Wleq500
- 1leqsx,gxleqH (2019/05/01 13:45 追記)
- 1leqsy,gyleqW (2019/05/01 13:45 追記)
- (sx,sy),(gx,gy) は両方とも氷山ではないマス
- 1leqXleqHW−2
- 0leqAi,jleqX
- Ai,j に 1,2,3,dots,X がすべて含まれる
- 1leqCileq1010
部分点
- H,Wleq40,Xleq9 を満たすテストケースすべてに正解すると、160 点が与えられる。
- H,Wleq40 を満たすテストケースすべてに正解すると、さらに 400 点が与えられる。
- すべてのテストケースに正解すると、さらに240点が与えられる
入力
入力は以下の形式で標準入力から与えられます.
H W X
sx sy
gx gy
A1,1 A1,2cdotsA1,W
A2,1 A2,2cdotsA2,W
vdots
AH,1 AH,2cdotsAH,W
C1 C2cdotsCX
出力
いろはちゃんがスタートからゴールにたどり着くための最小コストを出力してください。
入力例 1
4 5 4
2 1
3 5
1 1 1 2 2
0 1 0 2 0
0 3 0 4 0
3 3 4 4 4
10 5 8 12
出力例 1
13
入力例 2
5 7 6
5 3
2 7
2 2 2 1 1 3 3
2 2 2 1 1 3 0
2 6 6 6 1 3 5
2 6 6 6 1 4 4
2 2 0 1 1 4 4
927 138 284 714 456 798
出力例 2
1211
解説
解説