図解解説シリーズ
競技プログラミングを始めたばかりでAtCoderの解説やJOIの解説ではいまいちピンと来ない…という人向けに、図解を用いて解説を行います。
問題文
情報オリンピック日本委員会に掲載されている問題
AtCoderに掲載されている問題
入出力など実際に確認して自分の作成したプログラムを採点することができます。
図解解説
今年度の一次予選のB問題は、以下の3つのスキルを確認する問題になっています。
1.入力・出力を正しく利用できる
2.算術演算子を正しく利用できる
3.条件分岐(if)を正しく利用できる
問題文を整理するために、具体的な数字を用いて、図示して考えてみます。
入力例を使って図示して考えてみます。
入力例1を図示すると、移動時間は5時間となり、4時間30分以内に移動できません。入力例2を図示すると、移動時間は7時間となり、10時間30分以内に移動可能です。なお、入力例2の移動時間を使うと、7時間30分でぎりぎり移動可能です。30分という時間の扱いを考えなければ、図の赤字に注目して処理を記述することができそうです。
そこで、文字を使って考えると、A地点からB地点までの移動時間がX時間、B地点からC地点までの移動時間がY時間、最終的なA地点からC地点までの移動時間はX+Y時間です。このX+Y時間と、Z時間を比較して、X+Y<=Zが成立すれば移動可能となります。
条件分岐について、不安がある場合には上のスライドを参考にしてみてください。
解答例
b.py
X = int(input())
Y = int(input())
Z = int(input())
#A地点からB地点までの移動時間がX時間、B地点からC地点までの移動時間がY時間です。
#最終的なA地点からC地点までの移動時間はX+Y時間です。
#このX+Y時間と、Z時間を比較して、X+Y<=Zが成立すれば移動可能となります。
if X + Y <= Z:
print(1)
else:
print(0)
イラスト
スライド内で使用しているイラストはすべて「いらすとや」の素材を利用しています。