← К задачам
Средне · +3ЕГЭ задание 20Теория игр

Задание 20: гарантированный выигрыш за два хода

Игра «Куча камней»: в куче лежит некоторое количество камней. Игроки ходят по очереди, первым ходит Петя. За один ход игрок добавляет в кучу одно из чисел камней, разрешённых списком moves (например [1, 2] — добавить 1 или 2 камня). Выигрывает игрок, после чьего хода в куче становится S или больше камней (S — заданный порог).

Напишите функцию can_force_win_within_two_rounds(s0, S, moves), возвращающую True, если Петя (ходит первым из позиции s0) может ГАРАНТИРОВАННО выиграть не позднее, чем своим вторым ходом — то есть либо выигрывает сразу, либо есть такой ход, что ПРИ ЛЮБОМ ответе Вани у Пети найдётся выигрывающий второй ход. Если у Вани после хода Пети уже есть возможность выиграть самому — такая стратегия не считается гарантированной.

Пример: can_force_win_within_two_rounds(3, 7, [1, 2]) — Петя играет 3→4, откуда Ваня не может выиграть сразу и куда бы ни пошёл (4→5 или 4→6), Петя завершает игру → True.

def can_force_win_within_two_rounds(s0, S, moves):
    # ваш код
    pass
Для запуска тестов необходима авторизация.