小慕有一个 m 行 n 列的棋盘。他输入了棋盘上的数据。棋盘上每个格子要么是数字,要么是字符“.”。数字表示该格子上有一匹马,数字的值表示这匹马最多能移动的步数;字符“.”表示该格子是空的。 例如,如果棋盘上某个位置的数字是 k,表示该马每次移动时,可以走 1 到 k 步中的任意一个步数。 棋盘上马的移动规则类似于中国象棋中的马:先沿水平或垂直方向移动一格,再沿对角线方向移动一格。 马可以移动到同一个格子,同一个格子上可以同时有多匹马。 小慕想知道:是否可以将棋盘上所有的马都移动到同一个格子?如果可以,输出移动所需的最小总步数;如果不可以,输出 0。
提示:带虚线的词点一下有通俗解释。
输入描述
输入m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。输入棋盘内的数据。
输出描述
能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。若不可以输出 0。
示例
示例 1
输入
3 5 4 7 . 4 8 4 7 4 4 . 7 . . . .
输出
17
示例 2
输入
3 2 . . 2 . . .
输出
0
时间限制 1000 ms · 内存限制 128 MB