问题描述
南極海是一个 H×W 的网格。从海洋上的第 i 行第 j 列开始,用 (i,j) 来表示该位置。
南極海中有许多冰山。探险家小蓝想要从起点 (sx,sy) 移动到终点 (gx,gy),每次只能向上下左右相邻的方格移动。由于无法移动到有冰山的方格上,可能需要融化一些冰山。
每个冰山都有一个融化的代价 Ck。 要到达 (gx,gy) 的最小代价是多少?
共有 X 个冰山。方格 (i,j) 的状态是 Ai,j。当 Ai,j=0 时,表示该方格没有冰山。 当 1≤Ai,j≤X 时,表示该方格有冰山 Ai,j。注意,具有相同编号的冰山方格在上下左右是连通的。
约束条件
- 输入都是整数
- 1≤H,W≤500
- 1≤sx,gx≤H
- 1≤sy,gy≤W
- (sx,sy),(gx,gy) 都不是冰山方格
- 1≤X≤HW−2
- 0≤Ai,j≤X
- Ai,j 中包含了 1,2,3,…,X
- 1≤Ci≤1010
部分得分
- 当 H,W≤40,X≤9 时,全部正确可得到 160 分。
- 当 H,W≤40 时,全部正确可得到额外的 400 分。
- 全部正确可得到额外的 240 分。
输入
输入以以下格式从标准输入中给出。
H W X
sx sy
gx gy
A1,1 A1,2 ⋯ A1,W
A2,1 A2,2 ⋯ A2,W
⋮
AH,1 AH,2 ⋯ AH,W
C1 C2 ⋯ CX
输出
输出探险家小蓝到达终点的最小代价。
示例 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
解释
解答