Ctrl K

Ровно до нуля

Средняя
Дан массив неотрицательных чисел levels и список шагов drops, где drops[j] = [l, r, val]. На шаге можно выбрать любой набор ячеек с индексами от l до r включительно (в том числе пустой) и уменьшить каждую выбранную ячейку ровно на val. Уходить ниже нуля нельзя — нужно попасть точно в ноль. Шаги применяются строго по порядку. Найдите наименьшее k ≥ 0 такое, что после первых k шагов можно получить массив из одних нулей. Если это невозможно даже со всеми шагами, верните -1.
Пример 1
levels=[3, 2], drops=[[0, 1, 2], [0, 0, 1], [1, 1, 5], [0, 1, 1]] → 2

Первый шаг снимает ровно 2 с обеих ячеек: получаем [1, 0]. Второй снимает 1 с ячейки 0 — массив нулевой, ответ 2.

Пример 2
levels=[4], drops=[[0, 0, 3], [0, 0, 3]] → -1

Из шагов по 3 можно набрать только 0, 3 или 6 — ровно 4 не получится.

Пример 3
levels=[0, 0, 0], drops=[[0, 2, 1]] → 0

Массив уже нулевой, ответ 0.

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

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