Ctrl K

Минимум купюр

Средняя
В кассе есть купюры нескольких номиналов, перечисленных в массиве denominations; купюр каждого номинала сколько угодно. Нужно выдать ровно сумму total. Верните наименьшее число купюр, которыми это можно сделать. Если набрать сумму ровно невозможно, верните −1. Для total = 0 ответ — 0.
Пример 1
denominations=[4, 3, 10], total=13 → 2

13 = 10 + 3, хватает двух купюр.

Пример 2
denominations=[6, 9], total=16 → -1

Любая сумма из купюр 6 и 9 делится на 3, а 16 — нет, поэтому ответ −1.

Пример 3
denominations=[1, 5, 6, 9], total=11 → 2

Жадный выбор 9 + 1 + 1 даёт три купюры, но 6 + 5 обходится двумя.

Ограничения
  • 1 ≤ длина denominations ≤ 12
  • 1 ≤ denominations[i] ≤ 2³¹ - 1
  • 0 ≤ total ≤ 10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШаги до ближайшего нуля СредняяДальше всего от берега СредняяКузнечик идёт домой СредняяПерекрыть единственный проход СредняяКамни на поле 3 × 3 Средняя
загружаем Python…
Вход
denominations=[4, 3, 10], total=13
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 121 тест на сервере, включая скрытые.