KM-46|情報Ⅰ 対策問題
令和8年度本試験 第3問 問1 前問の結果(図1・表1)からYさんは、2人目以降の来訪者について、開始時刻が「【 エ 】より遅く到着した場合には【 オ 】、それ以外の場合は【 エ 】」になること、終了時刻が「来訪者本人の開始時刻と体験時間の和」、待ち時間が「来訪者本人の開始時刻と【 オ 】の差」で求められることを確認した。 空欄エ・オに入れる組合せとして最も適当なものを選べ。

解答・解説を見る
正解: 1
正答
1
問題の整理
待ち行列で「開始時刻がどう決まるか」を、1つの場合分けの文にまとめる問題です。状況は2通りしかありません。
- 前の人がもう終わっているとき → 待たずに、自分の到着と同時に開始
- 前の人がまだやっているとき → 前の人が終わるまで待ってから開始
この2つを「【エ】より遅く到着した場合には【オ】、それ以外の場合は【エ】」という形に流し込みます。
解き方
場合分けの境目は「前の人が終わっているかどうか」なので、比べる相手(エ)は直前の来訪者の終了時刻です。
- 終了時刻より遅く到着した場合: 前の人はもういない → 開始は本人の到着時刻(オ)
- それ以外(終了前に到着した)場合: 終わるまで待つ → 開始は直前の来訪者の終了時刻(エ)
実例で検算します。4人目は、3人目の終了9分より遅い10分に到着 → 開始は到着時刻の10分 ✓。5人目は、4人目の終了13分より早い11分に到着 → 開始は終了時刻の13分 ✓。どちらも一致します。
この場合分けは、実は「2つの時刻の遅い方を選ぶ」ことと同じです。プログラムでは最大値関数で Kaishi[i] = 最大値(Shuryou[i−1], Touchaku[i]) と1行に書けます。「場合分けの文 ⇔ max関数」の言い換えができると、次のプログラム問題が一気に楽になります。
なお「本人の終了時刻」は開始時刻が決まった後に計算される値なので、条件には使えません(まだ存在しない値で場合分けはできない)。
選択肢の確認
1.○ 「前の終了 vs 自分の到着」の遅い方、という規則そのもの。
2.× 本人の終了時刻はこれから決まる値で、条件に使えない。
3.× エとオが逆で、文の意味が成り立たない。
4.× 直前の人の到着時刻は開始の決定に関係しない。
ここだけは覚えよう
場合分け「遅く着いたら到着時刻、早く着いたら前の終了時刻」= max関数 — 言い換えに気づくとコードが読める。