はまやんはまやんはまやん

hamayanhamayan's blog

Study Scheduling [NOMURA Programming Competition 2020 A]

https://atcoder.jp/contests/nomura2020/tasks/nomura2020_a

解説

https://atcoder.jp/contests/nomura2020/submissions/13929073

まず起きている時間を計算しよう。
時間の単位が色々あるので、全部分に直してやるのが簡単。
H1時M1分を分に直すと、60H1+M1分となる。
H2時M2分を分に直すと、60
H2+M2分となる。
この差分が起きている時間なので、60H2+M2 - 60H1+M1となる。

勉強を開始するためには、勉強できる時間帯の末尾からK分で始めるとオーバーしてしまうので、それ以外の部分で始める必要がある。
よって、開始できる時間の長さは60H2+M2 - 60H1+M1 - Kであり、これが答え。

int H1, M1, H2, M2, K;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> H1 >> M1 >> H2 >> M2 >> K;

    int st = H1 * 60 + M1;
    int gl = H2 * 60 + M2;

    int len = gl - st;
    int ans = len - K;
    cout << ans << endl;
}