謙謙最近迷上棒球,他想自己寫一個簡化的遊戲計分程式。這會讀入隊中每位球員的打擊結果,然後計算出球隊得分。
這是個簡化版的模擬,假設擊球員打擊結果只有以下情況:
(1) 安打:以1B,2B,3B和HR 分別代表一壘打、二壘打、三壘打和全(四)壘打。
(2) 出局:以 FO,GO和 SO表示。
這個簡化版的規則如下:
(1) 球場上有四個壘包,稱為本壘、一壘、二壘、和三壘、。
(2) 站在本壘握著球棒打球的稱為「擊球員」,站在另外三個壘包的稱為「跑壘員」。
(3) 當擊球員的打擊結果為「安打」時,場上球員(擊球員與跑壘員)可以移動;結果為 「出局」時,跑壘員不動,擊球員離場換下一位擊球員。
(4) 球隊總共有九位球員,依序排列 。比賽開始由第1位開始打擊,當第 i 位球員打擊完畢後,由第 (i+1)位球員擔任擊球員。當第九位球員完畢後,則輪回第一位球員。
(5) 當打出 K 壘打時,場上球員(擊球員和跑壘員)會前進 K 個壘包。從本壘前進一個壘包會移動到一壘,接著是二壘、三壘,最後回到本壘。
(6) 每位球員回到本壘時可得 1分
(7) 每達到三個出局數時,一、二和三壘就會清空( 跑壘員都得離開) ,重新開始。
請寫出具備這樣功能的程式,計算球隊總得分。
原題pdf檔 (第4頁)
計算在總計第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
0
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 6
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 分。
評分說明
輸入包含若干筆測試資料,每一筆測試資料的執行時間限制(time limit) 均為 1秒,依正確通過測資筆數給分。其中:
第 1子題組 20分,打擊表現只有 HR 和 SO兩種。
第 2子題組 20 分,安打表現只有 1B ,而且 b 固定為 3。
第 3子題組 20分, b 固定為 3。
第 4子題組 40 分,每特別限制。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
35553 | wubaie (小億) | c297 | 537 | 2023-06-06 16:21 | |
39354 | toseanlin@gm ... (Dr. SeanXD) | c297 | 365 | 2024-02-08 22:55 | |
37690 | edoctopus322 ... (Moon Jam) | c297 | 405 | 2023-09-29 16:52 | |
35649 | luray0601@gm ... (QWERTYPIG) | c297 | 581 | 2023-06-10 22:05 | |
32907 | wmouo (crazypanda) | c297 | 598 | 2022-11-16 17:23 |