日期:2025年4月3日
ZeroJudge 題目連結:h659. 計程車 (Taxi)
解題想法
按照題目敘述的標準計算費用即可,不需要複雜的寫法。
Python 程式碼
使用時間約為 19 ms,記憶體約為 3.3 MB,通過測試。
import sys
for line in sys.stdin:
# 行駛總公里數、車輛延滯時間 (min)、上車及下車的時刻 (hr)
k, w, s, e = map(int, line.split())
fee = 0 # 費用
# 計算行駛總公里數産生的費用
if k <= 2: fee += 20 # 2 km 以內 20 元
else: fee += 20 + (k-2)*5 # 超過 2 km 加錢 5 元/km
# 計算車輛延滯時間産生的費用
fee += w//2*5 # 每滿 2 min 加 5 元
# 計算夜間加成産生的費用
if s <= 18 and e >= 19: fee += 185 # 橫跨 18 ~ 19 時,加 185 元
if s <= 19 and e >= 20: fee += 195 # 橫跨 19 ~ 20 時,加 195 元
if s <= 20 and e >= 21: fee += 205 # 橫跨 20 ~ 21 時,加 205 元
if s <= 21 and e >= 22: fee += 215 # 橫跨 21 ~ 22 時,加 215 元
if s <= 22 and e >= 23: fee += 225 # 橫跨 22 ~ 23 時,加 225 元
print(fee) # 印出答案
C++ 程式碼
使用時間約為 2 ms,記憶體約為 88 kB,通過測試。
#include <cstdio>
using namespace std;
int main() {
// 行駛總公里數、車輛延滯時間 (min)、上車及下車的時刻 (hr)
int k, w, s, e;
while(scanf("%d %d %d %d", &k, &w, &s, &e) != EOF) {
int fee = 0; // 費用
// 計算行駛總公里數産生的費用
if (k <= 2) fee += 20; // 2 km 以內 20 元
else fee += 20 + (k-2)*5; // 超過 2 km 加錢 5 元/km
// 計算車輛延滯時間産生的費用
fee += w/2*5; // 每滿 2 min 加 5 元
// 計算夜間加成産生的費用
if (s <= 18 && e >= 19) fee += 185; // 橫跨 18 ~ 19 時,加 185 元
if (s <= 19 && e >= 20) fee += 195; // 橫跨 19 ~ 20 時,加 195 元
if (s <= 20 && e >= 21) fee += 205; // 橫跨 20 ~ 21 時,加 205 元
if (s <= 21 && e >= 22) fee += 215; // 橫跨 21 ~ 22 時,加 215 元
if (s <= 22 && e >= 23) fee += 225; // 橫跨 22 ~ 23 時,加 225 元
printf("%d\n", fee); // 印出答案
}
return 0;
}
沒有留言:
張貼留言