Присоединиться

11 класс·высокий уровень

Найдите минимальное значение S, при котором одновременно выполняются

Условие

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.

Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 231. Победителем считается игрок, сделавший последний ход, то есть первым получивший такую позицию, при которой в кучах будет 231 или больше камней.В начальный момент в первой куче было 17 камней, во второй куче — S камней; 1 ≤ S ≤ 213.Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.

Найдите минимальное значение S, при котором одновременно выполняются два условия:— у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;— у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Разбор задачи целиком открывается после входа.

Осталось ещё 23 шагов

  1. При S = 97 Петя своим первым ходом может…

  2. Ваня удваивает количество камней во второй…

  3. Ваня может получить позицию (34, 98). В этом…

  4. Ваня удваивает количество камней в первой…

  5. Приведём другое решение на языке Python…

  6. and x + y >= 231: return 1 elif h == 5 and x…

  7. or f(x, y + 1, h +…

  8. or f(x * 2, y, h +…

  9. or f(x, y * 2, h +…

  10. # стратегия победителя else: return f(x +…

  11. and f(x, y + 1, h +…

  12. and f(x * 2, y, h +…

  13. and f(x, y * 2, h +…

  14. # сратегия проигравшего(любой ход) def f1(x…

  15. or f1(x, y + 1, h +…

  16. or f1(x * 2, y, h +…

  17. or f1(x, y * 2, h +…

  18. # стратегия победителя else: return f1(x +…

  19. and f1(x, y + 1, h +…

  20. and f1(x * 2, y, h +…

  21. and f1(x, y * 2, h +…

  22. # стратегия проигравшего(любой ход) for x in…

  23. == 1: print(x)print("====")for x in range(1…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Выигрышная стратегия. Задание 1»