b572 - 忘了東西的傑克
題目描述
題目描述了傑克忘東西在電腦教室,需要判斷他是否有足夠的時間回去拿東西並趕上公車。給定傑克目前的時間 (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;
}
}
}
}