Только сегодня увидел эту задачку. Времени с её опубликования прошло более чем достаточно, поэтому всё же напишу своё решение здесь.
Стоящий последним в колонне (он видит всех впереди себя) называет цвет шапочки стоящего ПЕРВЫМ в колонне (самого дальнего от себя). Допустим, белый, и подходит к первому стоящему перед ним обладателю белой шапочки. Второй подходит к следующему, стоящему перед ним обладателю белой шапочки, сообщает ему об этом. И так очередь доходит доходит до ПЕРВОГО в колонне. Он тоже говорит "белая". Остальные (т.е.все те, кто ещё не был задействован), увидев, что самый первый сказал про цвет его шапочки, говорят, как один "обратный" цвет - "черная".
Если первый стоящий в колонне одет в черную шапочку, сначала происходит обход черношапочников, потом о цвете своих шапок объявляют белошапочники.
Единственная ошибка возможна в самом начале, т.к. цвет шапочки последнего в колонне не знает никто, включая его самого. |