最少轉彎
在一個n*m的方格通路中,去掉若干個點,如下圖。其中加0的點表去掉的點。在圖中,任給兩點p,q,找出一條從p到q轉彎最少的路徑(路徑中的每一步只能沿水平或垂直方向行進,去掉的點不能通過)。
輸入格式:
輸入的第一行為n與m(均不大于100),第二行有四個整數px,py,qx,qy分別表示p、q點的坐標,第三行開始每行有兩個整數x,y,表示一個去掉的點的坐標(p、q點一定不是去掉的點)。輸入文件以-1,-1表示結束,圖中最左上角的b1坐標為(0,0),向下為x方向,向右為y方向。
輸出格式:
輸出有若干行,第一行為轉彎數,第二行開始順序輸出所求的轉彎最少的路徑中的每一個拐點的坐標,每行表示一個點。
樣例輸入: (road.in)
5 8
1 1 3 7
4 3
1 4
3 5
3 7
-1 -1
樣例輸出: (road.out)
2
2 1
2 7
<