TOJ 513

TOJ 513

題目

https://toj.tfcis.org/oj/pro/513/

給兩個以 24 進位制表示的時間,包含小時以及分鐘,分別表示開始以及結束的時間,其中保證兩者之間間隔不會超過 24 小時,但是可能跨天,求兩個時間的間隔是幾小時幾分。

想法

分別算出兩者時間轉換成分鐘,這樣一來如果說結束時間比開始時間來的短,表示過了一天,再加上 $24*60$ 分鐘

最後只需要獲得間隔再轉成小時以及分鐘即可

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//By Koios1143
#include<iostream>
using namespace std;
int main(){
int a,b,c,d;
cin>>a>>b>>c>>d;
int start=a*60+b;
int end=c*60+d;
if(end-start<0){
end+=24*60;
}
int res=end-start;
cout<<"totally "<< res/60 <<" hours and "<< res%60 <<" minutes.\n";

return 0;
}

複雜度分析

時間複雜度可記為 $O(1)$