Farmer John 乘船寻找 Cowribbean Sea 的 $N$ 座岛屿 $(1 \le N \le 100)$ 中一座的传说宝藏,岛编号 $1,\ldots,N$。
地图要求他从1号岛出发,最后在 $N$ 结束,并经过 $M$ 个岛 $(2 \le M \le 10,000)$ 的指定序列 $A_{1}$、$A_{2}$、……、$A_{M}$,宝藏才会出现。他可乱序或多次到访这些和其他岛,但旅程必须按地图指定顺序包含 $A_{i}$ 序列。
FJ 想避开海盗,知道每对岛间海盗危险等级 $(0 \le danger \le 100,000)$。任务总危险是所有经过路径危险等级之和。
找出满足地图要求、通往宝藏的最小危险路线。
输入格式
- 第1行:两个空格分隔整数 $N$ 和 $M$。
- 第 $2,\ldots,M+1$ 行:第 $i+1$ 行含一个整数 $A_{i}$,描述必须访问的第 $i_{th}$ 个岛。
- 第 $M+2,\ldots,N+M+1$ 行:第 $i+M+1$ 行有 $N$ 个空格分隔整数,依次为岛 $i$ 到1、2、……、$N$ 的路径危险等级。第 $i$ 个总为0。
输出格式
- 第1行:获得宝藏时遇到的最小危险。
样例
输入格式 1
3 4 1 2 1 3 0 5 1 5 0 2 1 2 0
输出格式 1
7
说明
有3岛,地图要求依序访问4岛:1、2、再次1、最后3。路径(1,2)、(2,3)、(3,1)及反向危险分别为5、2、1。
走1、3、2、3、1、3可用总危险7获得宝藏,满足地图1、2、1、3序列,避开了危险高的1与2之间路径。
题目作者:Jeffrey Wang, 2007