題目描述:
馬是象棋(包括中國象棋和國際象棋)中的棋子,走法是每步直一格再斜一格,即先橫著或直著走一格,然后再斜著走一個對角線,可進可退,可越過河界,俗稱“馬走‘日’字。
給頂m行n列的棋盤(網格圖),棋盤上只有有棋子象棋中的棋子“馬”,并且每個棋子有等級之分,等級為k的馬可以跳1~k步(走的方式與象棋中“馬”的規則一樣,不可以超出棋盤位置),問是否能將所有馬跳到同一位置,如果存在,輸出最少需要的總步數(每匹馬的步數相加),不存在則輸出-1。
注:允許不同的馬在跳的過程中跳到同一位置,坐標為(x,y)的馬跳一次可以跳到到坐標為(x+1, y+2), (x+1, y-2), (x+2, y+1), (x+2, y-1), (x-1, y+2), (x-1, y-2), (x-2, y+1), (x-2, y-1),的格點上,但是不可以超出棋盤范圍。
輸入描述:
第一行輸入m,n代表m行n列的網格圖棋盤(1 ≤ m, n ≤ 25);
接下來輸入m行n列的網格圖棋盤,如果第i行,第j列的元素為”.”代表此格點沒有棋子,如果為數字k(1<=k<=9),代表此格點存在等級為k的“馬”;
輸出描述:
輸出最少需要的總步數(每匹馬的步數相加),不存在則輸出-1。
補充說明:
示例1
輸入:
3 2 .. 2. ..輸出:
0<