Разбор #problem56@tproger про голубоглазых на

Разбор #problem56@tproger про голубоглазых на острове.

Читать на сайте: http://tproger.ru/problems/how-many-days-will-require..

Предположим, что на острове находится n людей и c из них — голубоглазые. Таким образом, мы знаем, что c > 0.

c = 1: у одного человека голубые глаза
Предположим, что все люди на острове достаточно умны. Если известно, что на острове есть только один голубоглазый человек, то, обнаружив, что у всех глаза не голубые, он придет к выводу, что он и является тем единственным голубоглазым человеком, которому следует улететь вечерним рейсом.

C = 2: у двух человек голубые глаза
Два человека с голубыми глазами видят друг друга, но не знают, чему равно c: c = 1 или c = 2. Из предыдущего случая известно, что если c = 1, то голубоглазый человек может себя идентифицировать и покинуть остров в первый же вечер. Если голубоглазый человек находится на острове (c = 2), это означает, что человек, видящий только одного голубоглазого, сам голубоглаз. Оба человека должны будут вечером покинуть остров.

c > 2: общий случай
Давайте использовать ту же логику. Если c = 3, то эти три человека сразу увидят, что на острове есть еще 2 (или 3) человека с голубыми глазами. Если бы таких людей было двое, они покинули бы остров накануне. Поскольку на острове все еще остаются голубоглазые люди, то любой человек может прийти к заключению, что c = 3 и что у него голубые глаза. Все они уедут той же ночью.

Такой шаблон можно использовать для произвольного значения c. Поэтому если на острове находится человек с голубыми глазами, понадобится c ночей, чтобы все они покинули остров.

#solutions@tproger

tproger.ru

Сколько дней потребуется, чтобы все голубоглазые уехали с острова?

На острове существует правило — голубоглазые люди не могут там находиться. Самолет улетает с острова каждый вечер в 20:00. Каждый человек может видеть цвет