ZeroJudge B682: 同學早安

俠阿校長是一位喜歡和學生互動的校長,而她最為人所知的就是會在上學時,站在校門口和同學們說早安。
有天,一位同學感到好奇,校長接下來究竟會在校門口站著多久呢?他記錄了接下來校長開始站在校門口的時間,以及該次的結束時間,非常神奇的是,在這段時間內校長都一直站著,都不用休息的。
請幫忙算一下校長這次究竟總共站了多久

範例測資

範例輸入範例輸出
輸入共有兩列。
第一列共有兩個整數 H1 和 M1,表示校長站在校門口的起始時間為 H1 時 M1 分。
第二列共有兩個整數 H2 和 M2,表示校長站在校門口的結束時間為 H2 時 M2 分。
輸入資料滿足 0 ≤ H1, H2 ≤ 23 ;0 ≤ M1 , M2 ≤ 59。
請輸出一列,其中包含兩個整數 H 和 M,並以一個空白隔開,表示校長這次總共站了 H小時M 分,須滿足 0 ≤ H ≤ 23;0 ≤ M ≤ 59。
7 10
7 20
0 10
7 20
8 15
0 55
8 30
13 40
5 10

解題思路

將兩邊的時間都換算為分鐘,如果結束的時間比開始時間少,代表中間有換日,所以結束的時間要加一天 (1440 分鐘)。答案就是結束的時間減掉開始的時間,小時是 答案/60,分鐘是 答案%60。

範例程式碼-ZeroJudge B682: 同學早安

#include <iostream>
using namespace std;

int main() {
    cin.sync_with_stdio(0);
    cin.tie(0);
    int a, b, start, finish;
    cin >> a >> b;
    start = (a*60) + b;
    cin >> a >> b;
    finish = (a*60) + b;
    if (start > finish) finish += 1440;
    int ans = finish - start;
    cout << ans/60 << " " << ans%60 << "\n";
}

//ZeroJudge B682
//Dr. SeanXD

發佈留言