#593. 弗拉德逃往特兰西瓦尼亚

弗拉德逃往特兰西瓦尼亚

说明

弗拉德是瓦拉几亚的国王,以其残酷的穿刺刑而闻名。他曾经多次抵抗奥斯曼帝国的入侵,保卫了自己的国家和人民。但是,他也因此树立了许多敌人,包括他的弟弟拉杜、一些叛变的贵族、甚至匈牙利王国。在一次与奥斯曼帝国的战斗中,他被背叛了,不得不逃往特兰西瓦尼亚寻求庇护。在那里,他遇到了一个神秘的老人,他自称是一个数学家,他向弗拉德提出了一个有趣的问题。

老人说,他有一个空的多段集,也就是一些不相交的线段的集合。他可以对这个集合进行两种操作:

最初,您有一个空的多段集。您需要处理两种类型的 qq操作:

  • ++ ll rr - 将数据段 (​l​,​r​) 添加到多段中
  • ll rr - 从多集合中移除片段 (l,r) 。保证该图段存在于多集合中。

老人说,他每次操作后,都会检查多段集中是否存在一对不相交的线段。如果存在这样的一对线段,他就会高兴地说“YES”,否则他就会沮丧地说“NO”。

输入

每个测试用例的第一行都包含一个整数 qq (1q1051 \leq q \leq 10^5) ——运算次数。

接下来的 qq 行描述两种类型的运算。如果是加法运算,则以 ++ ll rr 格式给出.如果是删除操作,则以 - ll rr的格式给出。(1lr1091 \leq l \leq r \leq 10^9).

输出

每次操作后,如果多集合中存在一对不相交的线段,则打印 "YES",否则打印 "NO"。

样例

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

解释: 在本例中,经过第二、第三、第四和第五次运算后,存在一对不相交的线段 (1,2)(1, 2)(3,4)(3, 4)

然后我们恰好删除了一条线段 (3,4)(3,4) ,这时我们就有了两条线段。因此,这一运算后的答案也是存在的。

NO
YES
YES
YES
YES
YES
NO
NO
YES
NO
NO
NO

Limitation

1s, 1024KiB for each test case.