Нашли ошибку?

Программа фестиваля

СредняяРеализацияГлава 9

#динамическое программирование#задача о рюкзаке#восстановление ответаid: ga-festival-plan

На фестивале идут выступления (название, часы, рейтинг). У вас hours свободных часов. Выступления не пересекаются по времени, но смотреть каждое можно только целиком. Напишите plan_festival(shows, hours): функция возвращает список индексов выступлений с максимальным суммарным рейтингом, которые помещаются в hours.

Пример

shows = [("рок", 3, 50), ("джаз", 2, 30), ("фолк", 2, 35), ("техно", 4, 60)]
plan_festival(shows, 5)   # [0, 2] (рок + фолк = 85) — порядок индексов не важен

Правила

Ограничения

Решение

def plan_festival(shows: list[tuple[str, int, int]], hours: int) -> list[int]:
    """Индексы выступлений с максимальным рейтингом, помещающихся в hours."""
    # ваш код
    raise NotImplementedError

Можно решать и в своём редакторе: «Скопировать с тестами» и запустите python3 festival_plan.py — тесты те же, результат покажет ✓ / ✗ и итог.