Вы и ваша подруга Карина решили сразиться в конфетном турнире. У вас есть вазочка со 100 карамельками и одной мятной шоколадкой. Вы с Кариной собираетесь по очереди тянуть из вазочки конфеты (как минимум одну и не больше пяти за один подход). Кто заберет последнюю карамельку — заберет и мятную шоколадку. А вы обожаете мятные шоколадки.

Допустим, Карина предложила вам решить, кто ходит первым. Как вам обеспечить себе выигрыш шоколадки? (Определите, кто ходит первым и по сколько конфет вы сами будете брать).

Посмотреть решение

Наилучший способ решения этой задачи — двигаться с конца.

Предположим, очередь Карины брать конфеты, а в вазочке осталось 5 или меньше карамелек. Тогда она просто заберет их все плюс шоколадку. Значит, вам нужно сделать так, чтобы к последнему ходу Карины непременно осталось больше 5 карамелек.

Как насчет 6?

Если в вазочке будет 6 карамелек, Карина сможет взять максимум 5, и тогда как минимум 1 карамелька останется вам (вместе с шоколадкой). Если в вазочке будет 7, 8, 9, 10 или 11 карамелек, Карина сможет взять столько, сколько нужно, чтобы оставить вам 6 штук, и это обеспечит ей победу.

Поэтому вам нужно, чтобы на последнем ходе Карины перед ней было 6 карамелек. Вы сможете это сделать, если на предыдущем ходе Карины перед ней будет 12 карамелек. Она возьмет сколько-то конфет, оставив вам 7, 8, 9, 10 или 11, из которых вы сможете взять столько, сколько нужно, чтобы оставить Карине 6.

Чтобы к ходу Карины в вазочке оказалось 12 карамелек, к ее предыдущему ходу вам нужно оставить ей 18. Вы сможете оставить ей 18 карамелек, если на предыдущем ходе ей будут оставаться 24 карамельки. Тут уже можно заметить паттерн: вам нужно сделать так, чтобы к каждому ходу Карины в вазочке оставалось количество карамелек, кратное 6.

Число 100 не кратно 6. Значит, вы не можете позволить Карине ходить первой. Ближайшее кратное 6 число — 96. Таким образом, вам надо ходить первым и взять 4 карамельки, оставив Карине 96.

Сколько конфет будет брать Карина, — не важно. Главное, чтобы вы брали столько, чтобы ко второму ее подходу в вазочке оставалось 90, к третьему — 84, к четвертому — 78, и так до 16-го подхода Карины, когда в вазочке должно остаться 6 карамелек. Она возьмет, сколько захочет, оставив вам последнюю карамельку и мятную шоколадку.

У этой стратегии есть любопытный побочный эффект: Карина может неплохо разжиться конфетками. Если она будет все время забирать максимальное количество конфет (5), всего она заберет 80 карамелек из 100. Хорошо, если вы и правда обожаете мятные шоколадки…

Марина

Share
Published by
Марина

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago