Ctrl K

Можно ли опустошить полки

Средняя
На складе в ряд стоят полки, на полке i лежит stock[i] товаров. По очереди приходят рейсы windows, где windows[j] = [l, r]: рейс проезжает вдоль полок с l по r включительно и может забрать по одному товару с любых из них — с одной, с нескольких, со всех или ни с одной. Верните True, если после всех рейсов можно оставить все полки пустыми, и False иначе.
Пример 1
stock=[1, 2, 0, 1], windows=[[0, 1], [1, 3]] → True

Первый рейс забирает по товару с полок 0 и 1, второй — с полок 1 и 3. Полку 2 второй рейс просто пропускает. Все полки пусты.

Пример 2
stock=[2, 1], windows=[[0, 1]] → False

На полке 0 два товара, а рейс всего один — с неё можно забрать только один.

Ограничения
  • 1 ≤ len(stock) ≤ 10⁵
  • 0 ≤ stock[i] ≤ 10⁵
  • 1 ≤ len(windows) ≤ 10⁵
  • windows[j] = [l, r], 0 ≤ l ≤ r < len(stock)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый короткий рывок СредняяПроизведение всех остальных СредняяСтудии для записи СредняяСамый длинный отрезок с заданной суммой СредняяПакет правок на отрезках Средняя
загружаем Python…
Вход
stock=[1, 2, 0, 1], windows=[[0, 1], [1, 3]]
Ожидается
True

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