#abc079d. [abc079_d]Wall
[abc079_d]Wall
问题描述
魔法少女Joisino决定将这个世界上的每一个数字都变成1。
将数字重写为()需要消耗 MP(魔法点数)。
她现在站在一堵墙前。这堵墙被分成行列的个方块,至少有一个方块包含了数字到之间的数字(包括和)。
给出描述第行从上到下、第列从左到右的方块的整数:
- 如果,则该方块包含数字。
- 如果,则该方块不包含数字。
找到将这堵墙上的每个数字都变成1所需的最小总MP数量。
约束条件
- 所有输入值都是整数。
- 墙上至少有一个数字。
输入
输入按照以下格式从标准输入给出:
输出
打印将这堵墙上的每个数字都变成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是。
示例输入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