切換
舊版
前往
大廳
主題

ZeroJudge - a797: A.房布回台北 解題心得

Not In My Back Yard | 2019-03-07 22:33:00 | 巴幣 0 | 人氣 81

題目連結:


題目大意:
有一個人叫郭房布,他想要回台北。而他有以下交通工具可搭乘:
1. 客運(Bus):原始價格 400 元,所需時間 6 小時
2. 火車(Train):原始價格 600 元,所需時間 4.5 小時
3. 高鐵(HSR):原始價格 1000 元,所需時間 1.5 小時
4. 走路(Walking):價格必為 0 元,所需時間超過 48 小時,但是只要房布有足夠的錢可以作其他選擇,他就不會走路回台北。

第一列給定一正整數 T (1 ≦ T ≦ 50, 000),代表接下來有幾組測試資料。

每組測試資料由四列輸入所構成。第一列給定兩正整數 M 、 H (0 ≦ M ≦ 10, 000 、 0 ≦ H < 24),代表房布身上有M元且他要在 H 點(24小時制)時出發。

接下來的三列,分別代表客運、火車以及高鐵的折扣資訊。每列有三個正整數 K0 、 K1 、 K2 (0 < K0 、 K1 、 K2  ≦ 200),代表離峰、一般、尖峰的折扣係數(有可能更貴)。而票價為:(原始票價) × (折扣係數) ÷ 100。

離峰時段為每日 21 時(含)至隔日上午 6 時(不含)、14 時(含)至 16 時(不含) ;尖峰時段為每日上午 6 時(含)至上午 9 時(不含)、17 時(含)到 19 時(不含) ;不屬於上述時段的時間即為一般時段。

而尖離峰的判斷以上車時間為基準。

求房布怎麼回台北比較好(先判斷哪個交通工具最便宜,一樣的話再判斷何者最快)。如果是客運請輸出「Bus」;是火車請輸出「Train」;是高鐵請輸出「HSR」。如果房布只能走路回台北,請輸出「Walk home」。



範例輸入:
2
600 12
90 150 200
60 90 100
40 54 90
10 0
200 300 400
200 250 300
2 3 4


範例輸出:
HSR
Walk home


解題思維:
純粹的流程控制。先檢查輸入的 H 屬於離峰、尖峰還是一般時段。然後再從相應的客運、火車以及高鐵的票價當中選出最便宜的。如果價錢一樣,就選耗時最少的。

而如果選出來最便宜、最快的交通工具之票價 > 房布的錢 M ,則直接輸出「Walk home」;反之,輸出相應的交通工具。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作