AtCoder Regular Contest 152 A問題 Seat Occupation
問題
提出解答
問題の概要
個の椅子が横一列にならんでいる. この席に 組が順番に座っていく. なお, 各組は 人組か, 人組で, 番目の組は 人組である. そして, である.
この 組は の順に, 番目の組は次のようにして椅子に座っていく.
- 連続する 個の空席が存在する場合, そのような場所からランダムに選び, その 席を座る. 存在しない場合, 座らずに帰る.
このとき, 次のことが確実にいえるか?
- どの 組も帰らずに座ることが出来る.
制約
解法
問題を観察すると, 次のことがわかる.
- 帰るような組は必ず2人組である.
- ある2人組が帰ったら, それ以降の2人組も帰る.
よって, 次のようにすればよい.
- 2人組が存在しない場合, 必ず可能である.
- 2人組が存在する場合, 最後に訪れる2人組が確実に座れるかどうかを判定すれば良い.
2人組が存在するとする. 最後に訪れる2人組が 番目であるとする. このときの 番目の組を座らせないような最悪のケースは次のような場合である.
- 左から2番目の席から 人座らせる.
- 1席空けて 人座らせる.
- 1席空けて 人座らせる.
このとき, 右端に残っている席の数は である. これが 以上であることが確実に可能であるための必要十分条件である.
なお, の両辺に を引いて, 変形すると,
となる. これは, の末尾の 項が と等しいということを意味している. これは となる が存在しない場合も含んでいる.