o712. 2. 蒐集寶石
標籤 :
通過比率 : 651人/717人 ( 91% ) [非即時]
評分方式:
Tolerant

最近更新 : 2024-10-22 13:04

內容

有一個 M×N 的地圖,每一格的數字紀錄著寶石的數量,如果數字是 -1 代表牆壁。
有一位機器人一開始位於 (r,c) 的位置上且方向朝右邊,他遵循著以下規則行走。
1. 若機器人位於的格字內寶石數量為 0,則機器人程式終止。
2. 機器人維護著一個分數 score,將 score 加上當前格的寶石數量,並且撿起一顆寶石。
3. 若 score 是 k 的倍數,則向右轉 90 度。
4. 若機器人面向的格子是牆壁或是超出邊界,則繼續向右轉 90 度直到面向的格子非牆壁或非超出邊界,並回到第 1 步。

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

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

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

輸入說明

第一行有 5 個正整數 M,N,k,r,c

1M100

2N100

1k20

0r<m

0c<n

保證機器人初始位置不是牆壁。接下來有 M 行,每一行有 N 的數字,代表地圖的資訊。

(60%) M = 1
(40%) 無限制

輸出說明

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

範例輸入 #1
1 7 3 0 4
1 -1 2 1 2 1 0
範例輸出 #1
5
範例輸入 #2
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
範例輸出 #2
8
測資資訊:
記憶體限制: 256 MB
公開 測資點#0 (5%): 1.0s , <1K
公開 測資點#1 (5%): 1.0s , <1K
公開 測資點#2 (5%): 1.0s , <1K
公開 測資點#3 (5%): 1.0s , <1K
公開 測資點#4 (5%): 1.0s , <1K
公開 測資點#5 (5%): 1.0s , <1K
公開 測資點#6 (5%): 1.0s , <1K
公開 測資點#7 (5%): 1.0s , <1K
公開 測資點#8 (5%): 1.0s , <1K
公開 測資點#9 (5%): 1.0s , <1K
公開 測資點#10 (5%): 1.0s , <1K
公開 測資點#11 (5%): 1.0s , <1K
公開 測資點#12 (5%): 1.0s , <1M
公開 測資點#13 (5%): 1.0s , <1M
公開 測資點#14 (5%): 1.0s , <1M
公開 測資點#15 (5%): 1.0s , <1M
公開 測資點#16 (5%): 1.0s , <1M
公開 測資點#17 (5%): 1.0s , <1M
公開 測資點#18 (5%): 1.0s , <1M
公開 測資點#19 (5%): 1.0s , <1M
提示 :

感謝 王洋森 提供範例測資與題目資訊

標籤:
出處:
2024年10月APCS [管理者: algo.seacow@ ... (演算法海牛) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
45612 a708254@gmai ... (林暉恩) o712
C語言詳解
21 2025-03-23 19:34
43515 ericshen1955 ... (暴力又被TLE) o712
579 2024-10-21 12:03
45218 john1100729@ ... (靖諺) o712
117 2025-01-26 22:06
44473 leeguanhan09 ... (李冠翰) o712
234 2024-12-08 23:09
44315 toseanlin@gm ... (Dr. SeanXD) o712
C++詳解
326 2024-11-24 12:43