Войти Регистрация
Алгоритмы

147. Клипы для истории ровно на 60 секунд

Средняя

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

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

Верните все разные наборы. Каждый набор — длительности по возрастанию, наборы отсортированы лексикографически.

В работе: Подсказка в редакторе историй VK: «из ваших клипов ровно 60 секунд собираются тремя способами».

Пример 1

Ввод
durations = [20, 10, 30, 10, 40]
target = 60
Вывод
[[10, 10, 40], [10, 20, 30], [20, 40]]

10 + 10 + 40, 10 + 20 + 30, 20 + 40. Набор 10 + 20 + 30 один, хотя десяток два.

Пример 2

Ввод
durations = [15, 25]
target = 60
Вывод
[]

Не набирается — пустой список.

Ограничения

  • 0 ≤ длина durations ≤ 22
  • 1 ≤ durations[i] ≤ 60
  • 1 ≤ target ≤ 180
  • Лимит — 2 с на тест (2000 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def clip_sets(durations, target):
Перебор с возвратомОтсеченияцельпо числу ответов

Источник: наша задача на данных VK. Условие пересказано своими словами.