19.04 Уменьшение количества камней
Ошибка.
Попробуйте повторить позже
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди,
первый ход делает Петя. За один ход игрок может убрать в одной из куч два камня или уменьшить количество камней в
куче в два раза (целочисленное деление). Чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Количество камней не может быть отрицательно и игрок не может производить действие с кучей если она пуста. Игра
завершается в тот момент, когда суммарное количество камней в кучах становится не более . Победителем считается
игрок, сделавший последний ход, т. е. первым получивший позицию, в которой в кучах будет
или меньше
камней.
В начальный момент в первой куче было камней, во второй куче —
камней,
. Будем говорить, что
игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Назовите минимальное значение
, при котором это возможно.
def moves(h):
a, b = h
res = []
if a - 2 >= 0:
res.append((a - 2, b))
if b - 2 >= 0:
res.append((a, b - 2))
if a > 0:
res.append((a // 2, b))
if b > 0:
res.append((a, b // 2))
return tuple(res)
@lru_cache(None)
def f(h):
if sum(h) <= 12:
return "END"
if any((f(x) == "END") for x in moves(h)):
return "P1"
if any((f(x) == "P1") for x in moves(h)):
return "V1"
if any((f(x) == "V1") for x in moves(h)):
return "P2"
if all((f(x) == "P2") for x in moves(h)):
return "V2"
for s in range(1, 100):
h = 25, s
if f(h) == "V1":
print(s, "V1")
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!