#593. 弗拉德逃往特兰西瓦尼亚
弗拉德逃往特兰西瓦尼亚
说明
弗拉德是瓦拉几亚的国王,以其残酷的穿刺刑而闻名。他曾经多次抵抗奥斯曼帝国的入侵,保卫了自己的国家和人民。但是,他也因此树立了许多敌人,包括他的弟弟拉杜、一些叛变的贵族、甚至匈牙利王国。在一次与奥斯曼帝国的战斗中,他被背叛了,不得不逃往特兰西瓦尼亚寻求庇护。在那里,他遇到了一个神秘的老人,他自称是一个数学家,他向弗拉德提出了一个有趣的问题。
老人说,他有一个空的多段集,也就是一些不相交的线段的集合。他可以对这个集合进行两种操作:
最初,您有一个空的多段集。您需要处理两种类型的 操作:
- - 将数据段 (l,r) 添加到多段中
- - 从多集合中移除片段 (l,r) 。保证该图段存在于多集合中。
老人说,他每次操作后,都会检查多段集中是否存在一对不相交的线段。如果存在这样的一对线段,他就会高兴地说“YES”,否则他就会沮丧地说“NO”。
输入
每个测试用例的第一行都包含一个整数 () ——运算次数。
接下来的 行描述两种类型的运算。如果是加法运算,则以 格式给出.如果是删除操作,则以 的格式给出。().
输出
每次操作后,如果多集合中存在一对不相交的线段,则打印 "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
解释: 在本例中,经过第二、第三、第四和第五次运算后,存在一对不相交的线段 和 。
然后我们恰好删除了一条线段 ,这时我们就有了两条线段。因此,这一运算后的答案也是存在的。
NO
YES
YES
YES
YES
YES
NO
NO
YES
NO
NO
NO
Limitation
1s, 1024KiB for each test case.