問題. Riddle of the Sphinx
3種類の生物がいる。それぞれの種類の足の数を答えよ。
問題を解くためにスフィンクスに「」という形式の質問を 5 回行う。これは 3 種類の生物がそれぞれ
匹いるときの足の本数の合計を訊ねる質問である。この質問に対してスフィンクスは
と答えるが、5回の質問のうち多くても 1 回は嘘をつく場合がある。
制約: 、
解法.
回目(
)の質問を
とし、その返答を
とする。また、答えである 3 種類の生物の足の本数をそれぞれ
とする。
初めの 4 回の質問を次のように行う。
もし、 ならばこの 4 回の質問で嘘は付かれていないので、答えは
となる。
それ以外 の場合を考える。すなわち、4 回の質問の内ちょうど 1 回嘘を付かれている場合である。ここまでの質問で答えの候補
は次の 4 通りに絞られる。
① :1回目の質問への答えが嘘の場合(2, 3, 4 回目の質問への答えは本当)
② :2 回目の質問への答えが嘘の場合(1, 3, 4 回目の質問への答えは本当)
③ :3回目の質問への答えが嘘の場合(1, 2, 4 回目の質問への答えは本当)
④ :4回目の質問への答えが嘘の場合(1, 2, 3 回目の質問への答えは本当)
残りの 1 回の質問でこれら 4 つの答えの候補から 1 つに絞りたい。ただし、最後の質問は必ず正しいことが上の仮定から保証されている。質問「」で上の 4 つの返答がすべて異なるようにしたい。すなわち、
①'
②'
③'
④'
としたときに、 となる
を見つけたい。この条件を
であることに注意して書き下すと、
より、
より、
より、
より、
より、
より、
となる。したがって、 を満たす
を 5 回目の質問として訊ねる。
候補はたくさんあるので実装では として質問をした。①', ②', ③', ④' の
に
を代入して計算した
が
に等しい
(①, ②, ③, ④ のどれか)が答えとなる。
計算時間:
コンテスト中なら真面目に 5 回目の質問の証明をしないで、 ①, ②, ③, ④ が一意になるような を全探索するかも(そのような
が存在することは答えがあるというメタ読みで)。
この問題難しくて時間かかった。8分で通しているチームがあるらして…すごい。