Ctrl K

Десерт под бюджет

Средняя
В кафе собирают десерт. Сначала выбирается ровно одна основа: цена i-й основы — bases[i]. Затем можно добавить добавки: j-я стоит toppings[j] за порцию, и каждой добавки можно взять 0, 1 или 2 порции. Можно обойтись и вовсе без добавок. Хочется, чтобы цена десерта была как можно ближе к budget (не важно, выше или ниже). Верните эту ближайшую возможную цену. Если таких цен две, верните меньшую.
Пример 1
bases=[5, 9], toppings=[2, 6], budget=15 → 15

Основа за 9 и одна порция добавки за 6 дают ровно 15.

Пример 2
bases=[4], toppings=[3], budget=8 → 7

Возможны цены 4, 7 и 10. Ближе всего к 8 — 7 (разница 1).

Пример 3
bases=[6, 12], toppings=[7], budget=9 → 6

Цены 6, 13, 20, 12, 19, 26. И 6, и 12 отстоят от 9 на 3 — берём меньшую, 6.

Ограничения
  • 1 ≤ len(bases), len(toppings) ≤ 10
  • 1 ≤ bases[i], toppings[j] ≤ 10⁴
  • 1 ≤ budget ≤ 10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКвадратная рамка из палочек СредняяРасставить плюсы и минусы СредняяРассадка с делимостью СредняяСамая дешёвая корзина с наборами СредняяГруппы с равными суммами Средняя
загружаем Python…
Вход
bases=[5, 9], toppings=[2, 6], budget=15
Ожидается
15

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