問題描述
謙謙最近迷上棒球,他想自己寫一個簡化的棒球遊戲計分程式。這個程式會讀入球隊中每位球員的打擊結果,然後計算出球隊的得分。
這是個簡化版的模擬,假設擊球員的打擊結果只有以下情況:
(1) | 安打:以1B, 2B, 3B和HR分別代表一壘打、二壘打、三壘打和全(四)壘打。 |
(2) | 出局:以FO, GO,和SO 表示。 |
這個簡化版的規則如下: | |
(1) | 球場上有四個壘包,稱為本壘、一壘、二壘和三壘。 |
(2) | 站在本壘握著球棒打球的稱為「擊球員」,站在另外三個壘包的稱為「跑壘員」。 |
(3) | 當擊球員的打擊結果為「安打」時,場上球員(擊球員與跑壘員)可以移動;結 果為「出局」時,跑壘員不動,擊球員離場,換下一位擊球員。 |
(4) | 球隊總共有九位球員,依序排列。比賽開始由第 1 位開始打擊,當第i位球員打擊完畢後,由第(i+1)位球員擔任擊球員。當第九位球員完畢後,則輪回第一位 球員。 |
(5) | 當打出K 壘打時,場上球員(擊球員和跑壘員)會前進K 個壘包。從本壘前進一個壘包會移動到一壘,接著是二壘、三壘,最後回到本壘。 |
(6) | 每位球員回到本壘時可得 1 分。 |
(7) | 每達到三個出局數時,一、二和三壘就會清空(跑壘員都得離開),重新開始。 |
請寫出具備這樣功能的程式,計算球隊的總得分。
評分說明
輸入包含若干筆測試資料,每一筆測試資料的執行時間限制(time limit)均為 1 秒,依 正確通過測資筆數給分。其中:
第 1 子題組 20 分,打擊表現只有 HR 和 SO 兩種。
第 2 子題組 20 分,安打表現只有 1B,而且 b 固定為 3。 第 3 子題組 20 分, b 固定為 3。
第 4 子題組 40 分,無特別限制。
1. | 每組測試資料固定有十行。 |
2. | 第一到九行,依照球員順序,每一行代表一位球員的打擊資訊。每一行開始有一個正整數 a (1 a 5),代表球員總共打了 a 次。接下來有 a 個字串(均為兩個字元),依序代表每次打擊的結果。資料之間均以一個空白字元隔開。球員的打擊資 訊不會有錯誤也不會缺漏。 |
3. | 第十行有一個正整數 b (1 b 27),表示我們想要計算當總出局數累計到 b 時,該球隊的得分。輸入的打擊資訊中至少包含 b 個出局。 |
計算在總計第 b 個出局數發生時的總得分,並將此得分輸出於一行。
範例一:輸入 5 1B 1B FO GO 1B 5 1B 2B FO FO SO 4 SO HR SO 1B 4 FO FO FO HR 4 1B 1B 1B 1B 4 GO GO 3B GO 4 1B GO GO SO 4 SO GO 2B 2B 4 3B GO GO FO 3 範例二:輸入 5 1B1B FO GO 1B 5 1B2B FO FO SO 4 SOHR SO 1B 4 FOFO FO HR 4 1B1B 1B 1B 4 GOGO 3B GO 4 1BGO GO SO 4 SOGO 2B 2B 4 3BGO GO FO 6
範例一:正確輸出 0 範例二:正確輸出 5
範例一說明:
1B:一壘有跑壘員。
1B:一、二壘有跑壘員。
SO:一、二壘有跑壘員,一出局。
FO:一、二壘有跑壘員,兩出局。
1B:一、二、三壘有跑壘員,兩出局。
GO:一、二、三壘有跑壘員,三出局。
達到第三個出局數時,一、二、三壘均 有跑壘員,但無法得分。因為 b = 3,代 表三個出局就結 束比 賽,因此 得到 0 分。
範例二說明:
續範例一,達到第三個出局數時 未得分,壘上清空。
1B:一壘有跑壘員。
SO:一壘有跑壘員,一出局。
3B:三壘有跑壘員,一出局,得一分。
1B:一壘有跑壘員,一出局,得兩分。
2B:二、三壘有跑壘員,一出局,得兩分。
HR:一出局,得五分。
FO:兩出局,得五分。
1B:一壘有跑壘員,兩出局,得五分。
GO:一壘有跑壘員,三出局,得五分。
因為 b = 6,代表要計算的是累積六個出局時 的得分,因此在前 3 個出局數時得 0 分,第 4~6個出局數得到5分 , 因此 總得 分是 0+5=5 分。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |