Задание 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