以前の記事の続きです。
順序関係を推理する推理算では、問題文にある条件やルールをとにかく正しく把握するということに尽きます。
たとえば次の問題。
ABCDEの5人を含む8人の徒競走の結果を、その5人が話しています。ゴールしたときは自分より前の様子が見えるので、「自分より先にゴールした人たち」の順位はわかりますが、「自分より後にゴールした人たち」の順位はわかりません。また、同じ順位の人はいませんでした。
A:「BとCの間には3人がゴールしました。」
B:「私は、8人の中では2位でした。」
C:「私は、Dの順位はわかりません。」
D:「A、B、C、D、Eの中で順位が奇数の人は1人だけでした。」
E:「Aより先にBがゴールしていました。」
5人の中で2番目に早くゴールしたのは▢で、その順位は8人の中で▢位です。(攻玉社中2022)
順位を決めるのに直接役に立ちそうな発言から見ていくと
B:「私は、8人の中では2位でした。」
A:「BとCの間には3人がゴールしました。」
B発言よりB=2位、これとA発言を合わせるとC=6位と決まる。
D:「A、B、C、D、Eの中で順位が奇数の人は1人だけでした。」
A:「BとCの間には3人がゴールしました。」
「「自分より後にゴールした人たち」の順位」はわからないというルールなので、D発言からDはほかの4人がゴールするのを見たことがわかり、5人の中で5位だったとわかる。
同じくA発言より、AはCよりは後にゴールしたとわかるから、A=7位、D=8位と決まる。
D:「A、B、C、D、Eの中で順位が奇数の人は1人だけでした。」
あらためてD発言をみると、すでに奇数はAが使ったので、残ったEは偶数番目にゴールしたとわかるが、この時点で残っている偶数は4位だけ。これで5人の順位がすべて決まった。
よって「5人の中で2番目に早くゴールした」のはEで、その順位は8人の中で4位となる。
なお、E発言「Aより先にBがゴールしていました。」は最後まで使わずに順位が決まった点が少し気になるが、このE発言の内容ともとくに矛盾はない。
このE発言が少しまぎらわしく、よく読まないと「EはAとBより後にゴールした」という早とちりをすることにもなりかねない。Eは全体で4位だったので、1位~3位のゴール者は見ており、そこにはAはいなかった(Bなら2位にいた)ということで「Aより先にBがゴールしていました。」(Aがゴールしたところを見たわけではないけどね)という発言をしても何の問題もないこととなります。少しモヤッとするところですが。