Ctrl K

Ковёр на окрашенные отрезки

Средняя
Клетки пола пронумерованы целыми числами. Массив stretches описывает окрашенные участки: пара [a, b] означает, что окрашены все клетки с номерами от a до b включительно. Участки не пересекаются и могут идти в любом порядке. У вас есть один ковёр длиной rug клеток, его можно положить в любое место (сплошной полосой из подряд идущих клеток). Верните наибольшее число окрашенных клеток, которые может накрыть ковёр.
Пример 1
stretches=[[3, 6], [9, 9], [14, 20]], rug=8 → 7

Ковёр с клетки 13 по 20 накрывает весь отрезок [14, 20] — 7 клеток. С клетки 3 по 10 вышло бы 4 + 1 = 5.

Пример 2
stretches=[[50, 52], [1, 2]], rug=1 → 1

Ковёр длины 1 накрывает ровно одну клетку — достаточно положить его на любую окрашенную.

Пример 3
stretches=[[1, 4], [6, 7], [9, 12]], rug=7 → 6
Ограничения
  • 1 ≤ len(stretches) ≤ 5 · 10⁴
  • 1 ≤ a ≤ b ≤ 10⁹ для каждой пары [a, b]
  • 1 ≤ rug ≤ 10⁹
  • Участки не пересекаются
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПодравнять числа прибавлением СредняяСамый богатый ряд домов СредняяПодвинуть числа навстречу СредняяКрасота клумб на бюджете СложнаяСколько влезет в бюджет Лёгкая
загружаем Python…
Вход
stretches=[[3, 6], [9, 9], [14, 20]], rug=8
Ожидается
7

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