#abc079d. [abc079_d]Wall

[abc079_d]Wall

问题描述

魔法少女Joisino决定将这个世界上的每一个数字都变成1。

将数字ii重写为jj0i,j90≤i,j≤9)需要消耗ci,jc_{i,j} MP(魔法点数)。

她现在站在一堵墙前。这堵墙被分成HHWW列的HWHW个方块,至少有一个方块包含了数字0099之间的数字(包括0099)。

给出描述第ii行从上到下、第jj列从左到右的方块的整数Ai,jA_{i,j}

  • 如果Ai,j1A_{i,j}≠-1,则该方块包含数字Ai,jA_{i,j}
  • 如果Ai,j=1A_{i,j}=-1,则该方块不包含数字。

找到将这堵墙上的每个数字都变成1所需的最小总MP数量。

约束条件

  • 1H,W2001≤H,W≤200
  • 1ci,j1031≤c_{i,j}≤10^3 (ij)(i≠j)
  • ci,j=0c_{i,j}=0 (i=j)(i=j)
  • \-1Ai,j9\-1≤A_{i,j}≤9
  • 所有输入值都是整数。
  • 墙上至少有一个数字。

输入

输入按照以下格式从标准输入给出:

HH WW c0,0c_{0,0} ...... c0,9c_{0,9} :: c9,0c_{9,0} ...... c9,9c_{9,9} A1,1A_{1,1} ...... A1,WA_{1,W} :: AH,1A_{H,1} ...... AH,WA_{H,W}

输出

打印将这堵墙上的每个数字都变成1所需的最小总MP数量。


示例输入1

2 4
0 9 9 9 9 9 9 9 9 9
9 0 9 9 9 9 9 9 9 9
9 9 0 9 9 9 9 9 9 9
9 9 9 0 9 9 9 9 9 9
9 9 9 9 0 9 9 9 9 2
9 9 9 9 9 0 9 9 9 9
9 9 9 9 9 9 0 9 9 9
9 9 9 9 9 9 9 0 9 9
9 9 9 9 2 9 9 9 0 9
9 2 9 9 9 9 9 9 9 0
-1 -1 -1 -1
8 1 1 8

示例输出1

12

为了将一个数字8转换为1,最优的方法是先将8转换为4,然后将4转换为9,最后将9转换为1,共需6MP。

墙上包含两个8,所以最少需要的总MP是6×2=126×2=12


示例输入2

5 5
0 999 999 999 999 999 999 999 999 999
999 0 999 999 999 999 999 999 999 999
999 999 0 999 999 999 999 999 999 999
999 999 999 0 999 999 999 999 999 999
999 999 999 999 0 999 999 999 999 999
999 999 999 999 999 0 999 999 999 999
999 999 999 999 999 999 0 999 999 999
999 999 999 999 999 999 999 0 999 999
999 999 999 999 999 999 999 999 0 999
999 999 999 999 999 999 999 999 999 0
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1

示例输出2

0

请注意她可能不需要改变任何数字。


示例输入3

3 5
0 4 3 6 2 7 2 5 3 3
4 0 5 3 7 5 3 7 2 7
5 7 0 7 2 9 3 2 9 1
3 6 2 0 2 4 6 4 2 3
3 5 7 4 0 6 9 7 6 7
9 8 5 2 2 0 4 7 6 5
5 4 6 3 2 3 0 5 4 3
3 6 2 3 4 2 4 0 8 9
4 6 5 4 3 5 3 2 0 8
2 1 3 4 5 7 8 6 4 0
3 5 2 6 1
2 5 3 2 1
6 9 2 5 6

示例输出3

47