# Simulation# Time Calculation

b572 - 忘了東西的傑克

🔗 前往 ZeroJudge 原題

題目描述

題目描述了傑克忘東西在電腦教室,需要判斷他是否有足夠的時間回去拿東西並趕上公車。給定傑克目前的時間 (h1, m1)、公車發車時間 (h2, m2) 以及回去拿東西所需的時間 M。如果傑克在公車發車前能回到公車站,則輸出 "Yes",否則輸出 "No"。

解題思路

解題思路是模擬傑克回去拿東西的時間。首先,將傑克目前的時間加上回去拿東西所需的時間 M。如果分鐘數超過 60,則將小時數加 1,分鐘數減 60。然後,比較傑克回到公車站的時間與公車發車時間。如果傑克回到公車站的時間早於或等於公車發車時間,則輸出 "Yes",否則輸出 "No"。

複雜度分析

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

程式碼

#include <iostream>

using namespace std;

int main (){
	
	int h1,m1,h2,m2;
	int M;
	int n;
	
	while(cin >> n){
		for(int i=1;i<=n;i++){
			cin >> h1 >> m1 >> h2 >> m2 >> M;
			m1+=M;
			while(m1>=60){
				h1++;
				m1-=60;
			}
			if(h1>h2){
				cout << "No" << endl;
			}
			else if(h1==h2&&m1>m2){
				cout << "No" << endl;
			}
			else{
				cout << "Yes" << endl;
			}
		}
	}
	
}

Discussion