Олимпиадный тренинг

Задача . D. Влюблино


Изначально у вас пустое мультимножество отрезков. Вам нужно обработать \(q\) операций двух типов:

  • \(+\) \(l\) \(r\) — Добавить в мультимножество отрезок прямой \((l, r)\),
  • \(-\) \(l\) \(r\) — Удалить из мультимножества ровно один отрезок прямой \((l, r)\). Гарантируется, что этот отрезок есть в мультимножестве.

После каждой операции нужно определить, существует ли пара отрезков из мультимножества, которая не пересекается. Пара отрезков \((l, r)\) и \((a, b)\) не пересекается, если не существует точки \(x\), для которой \(l \leq x \leq r\) и \(a \leq x \leq b\).

Входные данные

Первая строка каждого теста содержит целое число \(q\) (\(1 \leq q \leq 10^5\)) — количество операций.

Следующие \(q\) строк описывают операции двух типов. Если это операция добавления, то она задается в формате \(+\) \(l\) \(r\). Если это операций удаления, то она задается в формате \(-\) \(l\) \(r\) (\(1 \leq l \leq r \leq 10^9\)).

Выходные данные

После каждой операции выведите «YES», если существует пара отрезков из мультимножества, которая не пересекается, и «NO» иначе.

Вы можете вывести ответ в любом регистре (верхнем или нижнем). Например, строки «yEs», «yes», «Yes» и «YES» будут распознаны как положительные. ответы.

Примечание

В примере после второй, третьей, четвертой и пятой операций, существует пара отрезков \((1, 2)\) и \((3, 4)\), которая не пересекается.

Дальше мы удаляем ровно один отрезок \((3, 4)\), а у нас их к этому моменту было два. Поэтому после этой операции также существует пара непересекающихся отрезков.


Примеры
Входные данныеВыходные данные
1 12
+ 1 2
+ 3 4
+ 2 3
+ 2 2
+ 3 4
- 3 4
- 3 4
- 1 2
+ 3 4
- 2 2
- 2 3
- 3 4
NO
YES
YES
YES
YES
YES
NO
NO
YES
NO
NO
NO

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя