Ошибка.
Попробуйте повторить позже
Для игры, описанной в задании найдите минимальное значение при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Решение руками
Рассмотрим Из этой позиции Петя может сходить в или а из этих позиций Ваня сходит либо в , либо в а мы знаем, что это позиции типа .
Решение программой
from functools import lru_cache def moves(heap): m = [] if heap % 2 == 0: m += [heap // 2] else: if heap > 1: m += [heap - 2] if heap % 3 == 0: m += [heap // 3] else: if heap > 2: m += [heap - 3] return m @lru_cache(None) def game(heap): if heap <= 2: return 0 steps = [game(x) for x in moves(heap)] if any(x % 2 == 0 for x in steps): return min(x for x in steps if x % 2 == 0) + 1 return max(steps) + 1 for s in range(3, 100): if game(s) == 4: print(s) break
Специальные программы
Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!
Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.
Бесплатное обучение
в Школково
Для детей ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Брянской областей, а также школьникам, находящимся в пунктах временного размещения Крыма обучение на платформе бесплатное.
Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».
Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ или олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!
Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!