Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 367 A - Shout Everyday | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 43

問題概要

高橋君は毎日  B 時に就寝して  C 時に起床する。このとき、  A 時に起床しているか判定せよ。ただし、一日は24時間で、高橋君の睡眠時間は24時間未満であるとする。

制約

  • 入力はすべて整数。
  •  0 \leq A ,B, C \leq 24 \: (A \neq B \neq C)

考察

丁寧に場合分けを考えていく。考えられるのは次の2通りである。

  •  B \lt C (就寝と起床が同日中) のとき、  B \lt A \lt C ならばNoであり、そうでなければYes
  •  B \gt C (就寝と起床が別日) のとき、  B \lt A \: \mathrm{or} \: A \lt C ならばNoであり、そうでなければYes

コード

#include <bits/stdc++.h>
using namespace std;

// ======================================== //

int main()
{
    int A, B, C;
    cin >> A >> B >> C;

    if (B < C)
    {
        if (B < A && A < C)
        {
            cout << "No" << endl;
        }
        else
        {
            cout << "Yes" << endl;
        }
    }
    else
    {
        if (B < A || A < C)
        {
            cout << "No" << endl;
        }
        else
        {
            cout << "Yes" << endl;
        }
    }
}

atcoder.jp

実装時間: 5分