Ctrl K

Лучший товар в пределах бюджета

Средняя
В магазине есть товары goods, где goods[i] = [price, appeal] — цена товара и то, насколько он нравится покупателям. Цены и оценки у разных товаров могут совпадать. Также дан массив бюджетов budgets. Для каждого бюджета найдите наибольшую оценку appeal среди товаров, цена которых не превышает этот бюджет. Если ни один товар не по карману, ответ для этого бюджета — 0. Верните массив ответов в том же порядке, что и budgets.
Пример 1
goods=[[4, 7], [2, 3], [6, 9], [3, 8]], budgets=[1, 3, 5, 10] → [0, 8, 8, 9]

На 1 ничего не купить — 0. На 3 доступны товары по 2 и 3, лучший даёт 8. На 5 добавляется товар за 4 с оценкой 7, но 8 всё ещё лучше. На 10 доступно всё, максимум 9.

Пример 2
goods=[[5, 2], [5, 6]], budgets=[5, 4] → [6, 0]

За 5 можно взять любой из двух товаров, лучший — 6. За 4 не хватает ни на один.

Ограничения
  • 1 ≤ len(goods), len(budgets) ≤ 10⁵
  • goods[i] содержит ровно два числа
  • 1 ≤ price, appeal ≤ 10¹⁰
  • 0 ≤ budgets[j] ≤ 10¹⁰
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТройки с суммой меньше порога СредняяK-е по величине в упорядоченной таблице СредняяБлижайшее следующее окно СредняяТепло в каждый домик СредняяПары с заданной разницей Средняя
загружаем Python…
Вход
goods=[[4, 7], [2, 3], [6, 9], [3, 8]], budgets=[1, 3, 5, 10]
Ожидается
[0, 8, 8, 9]

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