题目描述
农夫约翰正驾驶一条小艇在牛勒比海上航行.
海上有N(1≤N≤100)个岛屿,用1到N编号.约翰从1号小岛出发,最后到达N号小岛.一张藏宝图上说,如果他的路 程上经过的小岛依次出现了Ai,A2,…,AM(2≤M≤10000)这样的序列(不一定相邻),那他最终就能找到古老的宝藏.
但是,由于牛勒比海有海盗出没.约翰知道任意两个岛屿之间的航线上海盗出没的概率,他用一个危险指数Dij(0≤Dij≤100000)来描述.他希望他的寻宝活动经过的航线危险指数之和最小.
那么,在找到宝藏的前提下,这个最小的危险指数是多少呢?
输入格式
第1行输入N和M,之后M行一行一个整数表示A序列,
之后输入一个N×N的方阵,表示两两岛屿之间航线的危险指数.
数据保证Dij=Dji,Dii=0.
输出格式
最小的危险指数和.
样例
输入样例
3 4
1
2
1
3
0 5 1
5 0 2
1 2 0
输出样例
7
提示
输入详细信息:
有3个岛屿,藏宝图要求农民约翰按顺序访问4个岛屿:岛1、岛2、岛1,最后是岛3。给出了路径的危险等级 :路径(1,2);(2,3); (3,1)和反向路径的危险等级分别为5、2和1。
输出详细信息:
他可以通过旅行获得总危险度为7的宝藏岛1、3、2、3、1和3的顺序。cow地图的要求(1、2、1和3)对此路线满意。我们避开这条路岛屿1和2之间,因为其危险等级较高。