これは結構大変!
問題概要
高橋君は、毎日 時 0 分に部屋の電気を点け、 時 0 分に部屋の電気を消す。電気をつけている間に日付が変わることもある。
時 30 分に部屋の電気がついているかどうかを判定せよ。
解法
これは整理するのが大変だと思う。次の 2 つの場合に分けてじっくり整理しよう!
- のとき (つまり、電気をつけている間に日付が変わるようなことがないとき)
- のとき (つまり、電気をつけている間に日付が変わるとき)
前者のとき
この場合は、 時 30 分に部屋の電気がついているのは、
のときである。
後者のとき
この場合は、電気をつけている間に日付が変わることに注意しよう。 時 30 分に部屋の電気がついているのは、
- のとき
- のとき
である。
コード
以上の整理をプログラムにすればよい。
#include <bits/stdc++.h> using namespace std; int main() { int S, T, X; cin >> S >> T >> X; if (S < T) { if (S <= X && X < T) cout << "Yes" << endl; else cout << "No" << endl; } else { if (X < T || S <= X) cout << "Yes" << endl; else cout << "No" << endl; } }