喵喵想抓在迷宮裡的皮卡丘.
迷宮裡每個 entry 上都有東南西北的方向, 表示要往哪個方向移動到下一個 entry.
那麼給定喵喵走進迷宮的起始位置, 喵喵走迷宮會有三種狀況:
跟著每個 entry 的方向走, 最後
1. 走出迷宮.
2. 一直在裡面兜圈子.
3. 找到皮卡丘.
假設喵喵站在迷宮北方選擇一個 column 走進迷宮,
請問喵喵最後有沒有抓到皮卡丘?
如果沒有抓到皮卡丘最後走出迷宮, 請印出喵喵走過 E 個 entry.
如果沒有抓到皮卡丘也沒能走出迷宮, 請印出喵喵走過 A 個 entry 後踏入循環路線, 並印出循環路線的總長為 B 個 entry.
如果抓到皮卡丘, 請印出喵喵找到皮卡丘之前走過 D 個 entry, 並且後面加上字串pika.
例如:
.png)
Map1: E為10
Map2: A為3, B為8
Map3: D為10
hint:
1. 假設讀進來 map 大小為 (row, col), 可以開一個大小為 (row+2, col+2) 的 map, 外面一圈填上 -1, 裡面放讀到的 map.
這樣有助於判斷什麼時候走到地圖外 (走到 -1 就是走到原本的地圖外)
2. 可以印出地圖檢查自己每一步有沒有走對, 或檢查讀地圖有沒有讀對
3. 另外開一個 (row+2, col+2) 的 array 裡面都是 0, 當走到某個位置 (x, y) 就在 array 的 (x, y) 位置紀錄目前已經走過幾個 entry.
這樣有助於判斷循環路線有多長, 因為只要遇到 array 裡不是 0 的地方就表示以下兩點皆成立:
(1) 這個位置走過了
(2) 這個位置是循環路線的起點, 把你現在走過的 entry 數減去這個位置的 entry 數能算出循環路線的長度
Map的row數 Map的column數 喵喵從哪個column走進迷宮
迷宮
註: 迷宮大小不超過10x10, 最小為2x2
P 為皮卡丘的位置
E
或
A B
或
D pika
註: 最後不需加上換行