小明一覺醒來,發現自己身陷在 TOI 地下大迷宮裡,迷宮可以表示成由 $1 \times 1$ 的神祕方格所組成的 $n \times m$ 矩形。每一個神祕方格可能有 $0$ 到 $4$ 個門,相鄰方格的兩扇門必須要對上小明才能通過。
小明發現自己的手上還有一個神奇的按鈕,按下去後,迷宮中所有神祕方格都會順時鐘旋轉 $90$ 度,過程消耗一單位時間。另外,移動到下一個房間也需要一單位時間,請根據地圖幫助小明計算出抵達迷宮的出口所需的最短時間。
第一行包含兩個由空白隔開的整數 $n,m(1\le n,m \le 1000)$,代表 TOI 地下大迷宮的長和寬。
接下來 $n$ 行,每行有 $m$ 個字母,用來表示迷宮地圖的樣子,字母的種類有:
下一行包含兩個由空白隔開的整數 $x_s, y_s\ (1 \leq x_s \leq n,\ 1 \leq y_s \leq m)$ 代表小明的位置。
最後一行包含兩個由空白隔開的整數 $x_t, y_t\ (1 \leq x_t \leq n,\ 1 \leq y_t \leq m)$ 代表迷宮出口的位置。
保證位於小明的位置和迷宮出口的位置的神祕方塊不是牆壁。
迷宮由上到下每行編號為 $1$ 到 $n$,由左到右每列編號為 $1$ 到 $m$。
輸出一個整數,代表小明抵達迷宮的出口所需的最短時間,若小明不可能抵達出口,輸出 -1
。
Codeforces Round #354 (Div. 2) D. Theseus and labyrinth
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~1 | 範例測資 | 0 |
2 | 0~34 | 無額外限制 | 100 |