Найти в Дзене
Журнал «Код»

Задача про тимлида и его новую команду

Оглавление

В этой зада­че врут почти все.

В пер­вый рабо­чий день тим­лид при­шёл зна­ко­мить­ся со сво­ей новой коман­дой. Дирек­тор позвал всех по оче­ре­ди в каби­нет — джу­ни­о­ра, мид­ла и сеньо­ра.

Пер­вый захо­дит и гово­рит: «При­вет, я джу­ни­ор!». Вто­рой: «А я не джу­ни­ор». Тре­тий уста­ло гово­рит «А я не мидл».

Дирек­тор пово­ра­чи­ва­ет­ся к тим­ли­ду и гово­рит: «Итак, ваше пер­вое зада­ние в коман­де — понять, кто из них кто, если толь­ко один ска­зал прав­ду».

Обыч­ный тим­лид в этот момент гово­рит: «Вы, навер­ное, куку­хой поеха­ли» — и поки­да­ет поме­ще­ние. Но так как это задач­ка на логи­ку, тим­лид назы­ва­ет пра­виль­ный ответ.

Как он это сде­лал?

Решение

Раз прав­ду ска­зал кто-то один, то пер­вый никак не может быть джу­ни­о­ром — тогда бы полу­чи­лось, что и пер­вый, и вто­рой ска­за­ли прав­ду. А раз прав­ду ска­зал кто-то один, то пер­вый — точ­но не джу­ни­ор, а мидл или сеньор.

Даль­ше зада­чу будем решать точ­но так же, как и зада­чу про пре­ступ­ни­ков, — возь­мём любое зна­че­ние и про­ве­рим, сов­па­дут ли все осталь­ные усло­вия.

Предположим, что первый — сеньор

Допу­стим, что пер­вый — сеньор и он ска­зал неправ­ду. Тогда если вто­рой ска­зал прав­ду и он не джу­ни­ор, то он — мидл. Тогда тре­тье­му оста­ёт­ся быть толь­ко джу­ни­о­ром. Но в этом слу­чае его фра­за «Я не мидл» тоже прав­ди­вая, и у нас полу­ча­ет­ся две прав­ды, а по усло­вию так не может быть. Зна­чит, вто­рой не мог ска­зать прав­ду.

Если пер­вый сеньор и вто­рой ска­зал неправ­ду, то полу­ча­ет­ся, что вто­рой — джу­ни­ор. Зна­чит, тре­тье­му оста­ёт­ся быть мид­лом, кото­рый дол­жен ска­зать прав­ду, раз осталь­ные совра­ли. Но тре­тий гово­рит нам, что он не мидл, а это про­ти­во­ре­чит тому, к чему мы при­шли. Полу­ча­ет­ся, что наше пер­вое допу­ще­ние, что пер­вый — сеньор, невер­ное.

Предположим, что первый — мидл

Теперь допу­стим, что пер­вый — мидл и что он ска­зал неправ­ду. Тогда если вто­рой ска­зал прав­ду, что он не джу­ни­ор, то полу­ча­ет­ся, что он — сеньор. Зна­чит, тре­тье­му оста­ёт­ся быть джу­ни­о­ром. Тре­тий нам гово­рит, что он не мидл, и это ока­зы­ва­ет­ся прав­дой. Но две прав­ды быть по усло­вию не может, поэто­му вто­рой не мог ска­зать прав­ду в этом слу­чае.

Если пер­вый — мидл и вто­рой тоже ска­зал неправ­ду, то полу­ча­ет­ся, что вто­рой — джу­ни­ор. Тре­тье­му же оста­ёт­ся быть сеньо­ром и ска­зать прав­ду. А тре­тий как раз и гово­рит, что он — не мидл, что не про­ти­во­ре­чит тому, что он сеньор, а зна­чит, что он един­ствен­ный из всех, кто ска­зал прав­ду. Всё схо­дит­ся.

Ответ

Пер­вый — мидл, вто­рой — джу­ни­ор, тре­тий — сеньор.

Не зна­е­те, кто такой джу­ни­ор? Читай­те нашу ста­тью.

Подписывайтесь на наш канал!