# Greedy# Math# Simulation

h659 - 計程車 (Taxi)

🔗 前往 ZeroJudge 原題

題目描述

題目描述了計程車的計費方式,並給定了起步里程、總里程、以及上下車時間。要求計算總車資。計費方式包含:

  • 基本費:20 元
  • 每 2 公里加 5 元
  • 超過 3 公里後,每公里加 5 元
  • 晚上 18:00 後,每公里加 185 元,之後每公里加 10 元

解題思路

這題主要考驗對題目描述的理解和模擬計費方式的能力。程式碼直接根據題目描述的計費規則進行計算。首先計算基本費和 2 公里內的費用,然後根據里程數和時間計算超過 3 公里後的費用,最後計算晚上 18:00 之後的費用。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <iostream>
using namespace std;
int k,w,s,e,m;
int main(){
	cin >> k >> w >> s >> e;
	m=20+(w/2)*5;
	for(int i=3;i<=k;++i)
		m+=5;
	for(int i=s+1;i<=e;++i)
		if(i>18)
			m+=185+(i-19)*10;
	cout << m;
}

Discussion