# Conditional Statements# Time Conversion# Comparison

i920 - 12136 - Schedule of a Married Man

🔗 前往 ZeroJudge 原題

題目描述

題目要求判斷一個男人是否能參加會議,給定他與妻子相處的時間以及會議的時間。如果會議時間與妻子時間重疊或接觸,則他會錯過會議。輸入為 24 小時制的時間格式。

解題思路

題目主要考驗對時間的處理和比較。首先,將輸入的 HH:MM 格式的時間轉換為分鐘數,以便進行比較。然後,判斷會議時間是否落在妻子時間的區間內,或者妻子時間的區間是否落在會議時間內。如果存在重疊或接觸,則判斷為錯過會議,否則判斷為可以參加會議。

複雜度分析

  • 時間複雜度: O(T),其中 T 是測試案例的數量。每個案例的時間複雜度為 O(1),因為只進行了常數次的時間轉換和比較操作。
  • 空間複雜度: O(1),只使用了常數個變數來存儲時間和判斷結果。

程式碼

#include <iostream>
using namespace std;
int main(){
	cin.tie(0); ios::sync_with_stdio(0);
	int t,c[4];
	string a;
	cin >> t;
	for(int ca=1;ca<=t;++ca){
		bool ac=1;
		for(int i=0;i<4;++i){
			cin >> a;
			c[i]=(a[0]-'0')*600+(a[1]-'0')*60+(a[3]-'0')*10+(a[4]-'0');
		}
		if((c[2]>=c[0]&&c[2]<=c[1])||(c[3]>=c[0]&&c[3]<=c[1])||(c[0]>=c[2]&&c[0]<=c[3])||(c[1]>=c[2]&&c[1]<=c[3]))ac=0;
		cout << "Case " << ca << ": ";
		ac?cout << "Hits Meeting\n":cout << "Mrs Meeting\n";
	}
}

Discussion