7015 - 最短格子距離   

Description

平面上有MxN個格子,每格的寬和高都是一個單位長度。

今天這些格子裡面有一些被標記起來,稱之為障礙格,我們要從指定的兩個非障礙格AB,找出從A走到B的最短距離

對於每個格子都只能往他上下左右相鄰的四個非障礙格走動,每走一格就會多一個距離。

舉例來說:

 

上圖中深藍色的格子為障礙格,我們從A走到B的最短距離是:

 

 

 

A往下走4格,往右走4格,往上走2格,往右走2格,往下走3格。

所以A走到B的最短距離是15

Input

第一行表示有T (T <= 30) 組測試資料。

對於接下來T組測試資料中:

第一行有兩個正整數M, N(0 < M < 100, 0 < N < 100)表示格子寬和高的數量

第二行有兩個數字(XA, YA)表示格子A的座標(0 <= XA < M, 0 <= YA < N)

第三行有兩個數字(XB, YB)表示格子B的座標(0 <= XB < M, 0 <= YB < N)

第四行有一個整數B表示接下來有幾個障礙格

接下來的B行中各有兩個數字(X, Y)表示障礙格子座標 (0 <= X < M, 0 <= Y < N) 

Output

對於每一組輸出AB的最短距離,如果A無法走到B,則輸出 -1表示。 

Sample Input  Download

Sample Output  Download

Tags




Discuss