Ctrl K

Сколько раундов до нуля

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

После двух раундов ячейки можно уменьшить максимум на [2, 2, 1] — ячейке 0 нужно 3, ячейке 2 нужно 2. После третьего раунда запас [3, 3, 2] покрывает всё, ответ 3.

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

Массив уже нулевой, раунды не нужны.

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

Даже оба раунда уменьшают ячейку максимум на 4 — до нуля не дойти.

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

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