Ctrl K

Числа в пределах бюджета

Средняя
Даны список запрещённых чисел blocked и два целых числа limit и budget. Нужно выбрать набор различных целых чисел так, чтобы: - каждое число лежало в отрезке от 1 до limit; - ни одно число не встречалось в blocked; - сумма выбранных чисел не превышала budget. Верните, сколько чисел можно выбрать при этих условиях — как можно больше.
Пример 1
blocked=[2, 3], limit=8, budget=12 → 3

Можно взять 1, 4 и 5: сумма 10. Добавить следующее разрешённое число 6 уже нельзя — сумма станет 16.

Пример 2
blocked=[9], limit=4, budget=100 → 4

Число 9 и так вне диапазона, а все числа от 1 до 4 в сумме дают 10 — берём все.

Пример 3
blocked=[1, 2], limit=5, budget=2 → 0

Самое маленькое разрешённое число — 3, оно уже больше бюджета.

Ограничения
  • 0 ≤ len(blocked) ≤ 10⁵
  • 1 ≤ blocked[i] ≤ 10⁵
  • 1 ≤ limit ≤ 10⁵
  • 1 ≤ budget ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПары с заданной разницей СредняяТройки палочек для треугольника СредняяЗадания с перерывом на остывание СредняяСлова, спрятанные в тексте СредняяСамая выгодная подработка для каждого Средняя
загружаем Python…
Вход
blocked=[2, 3], limit=8, budget=12
Ожидается
3

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