5562 - I2P_LAB09_2   

Description

喵喵想抓在迷宮裡的皮卡丘.

迷宮裡每個 entry 上都有東南西北的方向, 表示要往哪個方向移動到下一個 entry.

那麼給定喵喵走進迷宮的起始位置, 喵喵走迷宮會有三種狀況:

跟著每個 entry 的方向走, 最後

1. 走出迷宮.

2. 一直在裡面兜圈子.

3. 找到皮卡丘.

 

假設喵喵站在迷宮北方選擇一個 column 走進迷宮,

請問喵喵最後有沒有抓到皮卡丘?

如果沒有抓到皮卡丘最後走出迷宮, 請印出喵喵走過 E 個 entry.

如果沒有抓到皮卡丘也沒能走出迷宮, 請印出喵喵走過 A 個 entry 後踏入循環路線, 並印出循環路線的總長為 B 個 entry.

如果抓到皮卡丘, 請印出喵喵找到皮卡丘之前走過 D 個 entry, 並且後面加上字串pika.

 

例如:

 

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 數能算出循環路線的長度

Input

Map的row數  Map的column數  喵喵從哪個column走進迷宮

迷宮

 

註: 迷宮大小不超過10x10,  最小為2x2

      P 為皮卡丘的位置

Output

E

A B

D pika

 

註: 最後不需加上換行

Sample Input  Download

Sample Output  Download

Tags




Discuss