Ctrl K

Парковка между столбиками

Сложная
Вдоль улицы идёт бесконечная числовая прямая, начинающаяся в точке 0. На ней по очереди происходят события из списка requests: - [1, x] — в точке x ставят столбик. Гарантируется, что столбика там ещё нет; - [2, x, size] — нужно ответить, можно ли поставить машину длины size целиком внутри отрезка [0, x] так, чтобы ни один столбик не оказался строго внутри машины. Касаться столбика концом машины можно. Машину на самом деле не ставят — проверки независимы. Верните список ответов True/False на все запросы второго типа в том порядке, в котором они идут.
Пример 1
requests=[[1, 4], [2, 6, 4], [2, 6, 5], [1, 1], [2, 6, 4]] → [True, False, False]

После столбика в точке 4 на отрезке [0, 6] свободны участки длиной 4 и 2: машина длины 4 влезает, длины 5 — нет. После столбика в точке 1 участки стали 1, 3 и 2, и машина длины 4 уже не помещается.

Пример 2
requests=[[2, 3, 3], [1, 2], [2, 3, 3], [2, 9, 3]] → [True, False, True]

Сначала столбиков нет, и машина длины 3 занимает весь [0, 3]. Столбик в точке 2 это ломает. На отрезке [0, 9] свободен участок от 2 до 9 — места хватает.

Ограничения
  • 1 ≤ len(requests) ≤ 1.5·10⁵
  • Запрос первого типа имеет вид [1, x], второго — [2, x, size]
  • 1 ≤ x, size ≤ min(5·10⁴, 3·len(requests))
  • В одну точку столбик ставят не больше одного раза
  • Есть хотя бы один запрос второго типа
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньшие справа СложнаяСуммы отрезков в заданной полосе СложнаяПары с крутым спадом СложнаяЦена расстановки на полке СложнаяТройки, согласные в обоих рейтингах Сложная
загружаем Python…
Вход
requests=[[1, 4], [2, 6, 4], [2, 6, 5], [1, 1], [2, 6, 4]]
Ожидается
[True, False, False]

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