b235: P2 蒐集寶石
標籤 : 教學用
通過比率 : 1人/1人 ( 100% ) [非即時]
評分方式:
Tolerant

最近更新 : 2025-05-29 12:36

內容

有一個 $m * n$ 的地圖,每一格的數字紀錄著寶石的數量,如果數字是 $-1$ 代表牆壁。

有一位機器人一開始位於 $(r, c)$ 的位置上且方向朝右邊,他遵循著以下規則行走。

$1.$ 若機器人位於的格字內寶石數量為 $0$,則機器人程式終止。

$2.$ 機器人維護著一個分數 $score$,將 $score$ 加上當前格的寶石數量,並且撿起 $1$ 顆寶石。

$3.$ 若 $score$ 是 $k$ 的倍數,則向右轉 $90$ 度。

$4.$ 若機器人面向的格子是牆壁或是超出邊界,則繼續向右轉 $90$ 度直到面向的格子非牆壁或非超出邊界,並回到第 $1$ 步。

例如機器人一開始在座標 $(2, 1)$ 且 $k = 2$,向右走兩步之後分數為 $3 + 2 + 3 = 8$,由於 $8$ 是 $2 (k = 2)$ 的倍數所以向右轉 $90$ 度。接下來往下走一步分數變為 $11$,需要向右轉 $2$ 次 $90$ 度才不會面向牆壁或是邊界外的格子。

接下來向前走一步走到座標 $(2, 3)$,由於先前已經拿走一顆寶石,該位置的寶石數量變為 $2$,因此分數變為 $13$,再繼續往上走兩步到 $(0, 3)$ 處分數為 $16$,由於 $16$ 為 $2 (k = 2)$ 的倍數所以向右轉 $90$ 度。

向前走一格到 $(0, 4)$ 後需要向右轉兩次 $90$ 度,回到 $(0, 3)$ 後由於寶石數量為 $0$,機器人停止。過程中機器人總共撿了 $8$ 顆寶石。

輸入說明

第一列輸入五數 $m,n,k,r,c$ 分別代表地圖邊長、倍率和起點座標。

接下來輸入 $m$ 列 $n$ 行個數字,代表地圖的資訊。

輸出說明

輸出機器人會蒐集幾個寶石。

範例輸入
範例一:
1 7 3 0 4
1 -1 2 1 2 1 0
------
範例二:
4 5 4 2 1
2 0 1 1 1
2 -1 0 2 -1
0 3 2 3 0
1 1 -1 3 1
範例輸出
範例一:
5
------
範例二:
8
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (10%): 1.0s , <1K
公開 測資點#1 (10%): 1.0s , <1K
公開 測資點#2 (10%): 1.0s , <1K
公開 測資點#3 (10%): 1.0s , <1K
公開 測資點#4 (10%): 1.0s , <1K
公開 測資點#5 (10%): 1.0s , <1K
公開 測資點#6 (10%): 1.0s , <1M
公開 測資點#7 (10%): 1.0s , <1M
公開 測資點#8 (10%): 1.0s , <1M
公開 測資點#9 (10%): 1.0s , <1M
提示 :

$60\;\% : m = 1  \; , \; 2 \leq n \leq 100 \; , \; 1 \leq k \leq 20 \; , \; 0 \leq r \leq m \; , \; 0 \leq c \leq n$

$100\;\% : 1 \leq m \leq 100  \; , \; 2 \leq n \leq 100 \; , \; 1 \leq k \leq 20 \; , \; 0 \leq r \leq m \; , \; 0 \leq c \leq n$

保證機器人初始位置不是牆壁。

題解

標籤:
教學用
出處:
APCS 2024.10.20 [管理者:
Pote_Liu (13th 初階助教)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」