361.1

最初二問が普通なのに、最後が...。

250

N人の人がいて、全員白または黒の帽子をかぶっている。自分以外の人を見て白い帽子をかぶっている人数を答えるので、白い帽子をかぶっている人の人数を答えよ、という問題。


結果をソートすると、白い帽子をかぶっているK人がK-1と答え、それ以外のN-K人がKと答えるはず。なのでこれに合致するかどうか判定すれば良い。

500

ある数から左右反転させた値を引いたときの値が与えられるので、元の数として可能なものの最小値を答えよ、という問題。


桁数を一つずつ増やしながら試していく。桁数が分かっていれば、上の方の桁から順に決定していくような探索を書けば良い。後ろ半分の桁は上の方の桁と打ち消し合う形になるのと、桁が一つずれると0から9の範囲で目的の差分を作れなくなるので探索は余り広がらない。

1000

重りがいくつかあり、重さは1から3のいずれかである。二つの重りの大小関係が部分的に与えられるので、ある二つの重りと、他の重り二つの任意の組み合わせについて、大小関係が決定できるものについてのみ、大小関係をすべて答えよ、という問題。


重さ差分の範囲についてメモしておいて、Warshall-Floydで計算してやって、最終的な結果を全通り試せば良いそうです...。ぐちゃぐちゃ全パターン列挙だと普通に漏れが出て通らないと思う。