19.04 Уменьшение количества камней
Ошибка.
Попробуйте повторить позже
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может убрать в одной из куч три камня или уменьшить количество камней в куче в 5 раз (целочисленное деление). Чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Количество камней не может быть отрицательно и игрок не может производить действие с кучей если она пуста. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не более . Победителем считается игрок, сделавший последний ход, т. е. первым получивший позицию, в которой в кучах будет или меньше камней.
В начальный момент в первой куче было камней, во второй куче — камней, . Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Известно, что Петя выиграл своим первым ходом. Назовите минимальное значение , при котором это возможно.
def moves(h):
a, b = h
res = []
if a - 3 >= 0:
res.append((a - 3, b))
if b - 3 >= 0:
res.append((a, b - 3))
if a > 0:
res.append((a // 5, b))
if b > 0:
res.append((a, b // 5))
return tuple(res)
@lru_cache(None)
def f(h):
if sum(h) <= 75:
return "END"
if any((f(x) == "END") for x in moves(h)):
return "P1"
if all((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" or f(x) == "P1") for x in moves(h)):
return "V2"
for s in range(50, 101):
h = 100, s
if f(h) == "P1":
print(s, "P1")
Специальные программы
Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!
Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.
Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.
Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».
Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!
Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!