{"trustable":false,"sections":[{"title":"","value":{"format":"HTML","content":"\n \u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e\n \u003cspan lang\u003d\"en-us\"\u003e\u003cp\u003eLogLoader是一家专门提供日志分析产品的公司。Ikki在做毕业设计的同时,还忙于在LogLoader做实习。在他的工作里,有一项是要写一个模块来处理时间区间。这个事情一直让他感到很迷糊,所以现在他很需要你帮忙。\n\n在离散数学里面,你已经学习了几种基本的集合运算,具体地说就是并、交、相对补和对称差。它们自然地也适用于区间这种特殊的集合。作为你的快速参考,它们可以总结成下表:\u003c/p\u003e\n \u003cblockquote\u003e\n \u003ctable border\u003d\"1\" style\u003d\"border-collapse: collapse\" bordercolor\u003d\"#000000\" id\u003d\"table1\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003cth\u003eOperation\u003c/th\u003e\n \u003cth\u003eNotation\u003c/th\u003e\n \u003cth\u003e\u003cp align\u003d\"left\"\u003eDefinition\u003c/p\u003e\u003c/th\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"center\"\u003eUnion\u003c/td\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ci\u003eA\u003c/i\u003e ∪ \u003ci\u003eB\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e{\u003ci\u003ex\u003c/i\u003e : \u003ci\u003ex\u003c/i\u003e ∈ \u003ci\u003eA\u003c/i\u003e or \u003ci\u003ex\u003c/i\u003e ∈ \u003ci\u003eB\u003c/i\u003e}\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"center\"\u003eIntersection\u003c/td\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ci\u003eA\u003c/i\u003e ∩ \u003ci\u003eB\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e{\u003ci\u003ex\u003c/i\u003e : \u003ci\u003ex\u003c/i\u003e ∈ \u003ci\u003eA\u003c/i\u003e and \u003ci\u003ex\u003c/i\u003e ∈ \u003ci\u003eB\u003c/i\u003e}\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"center\"\u003eRelative complementation\u003c/td\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ci\u003eA\u003c/i\u003e − \u003ci\u003eB\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e{\u003ci\u003ex\u003c/i\u003e : \u003ci\u003ex\u003c/i\u003e ∈ \u003ci\u003eA\u003c/i\u003e but \u003cscript lang\u003d\"javascript\" src\u003d\"\"\u003edocument.write(navigator.userAgent.indexOf(\"MSIE 6.0\")!\u003d-1?\"not \u003ci\u003ex\u003c/i\u003e \u0026isin;\":\"\u003ci\u003ex\u003c/i\u003e \u0026notin;\");\u003c/script\u003e\u003ci\u003e B\u003c/i\u003e}\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"right\"\u003eSymmetric difference\u003c/td\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ci\u003eA\u003c/i\u003e ⊕ \u003ci\u003eB\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e(\u003ci\u003eA\u003c/i\u003e − \u003ci\u003eB\u003c/i\u003e) ∪ (\u003ci\u003eB\u003c/i\u003e − \u003ci\u003eA\u003c/i\u003e)\u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n \u003c/blockquote\u003e\u003cp\u003eIkki已经把他的工作里出现的区间运算抽象成一个很小的编程语言。他想你为他实现一个解析器。这个语言维护一个集合S。S一开始是空集,并根据下列命令被修改:\u003c/p\u003e\n \u003cblockquote\u003e\n \u003ctable border\u003d\"1\" style\u003d\"border-collapse: collapse\" bordercolor\u003d\"#000000\" id\u003d\"table2\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003cth\u003eCommand\u003c/th\u003e\n \u003cth\u003eSemantics\u003c/th\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ccode\u003eU\u003c/code\u003e \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e\u003ci\u003eS\u003c/i\u003e ← \u003ci\u003eS\u003c/i\u003e ∪ \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ccode\u003eI\u003c/code\u003e \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e\u003ci\u003eS\u003c/i\u003e ← \u003ci\u003eS\u003c/i\u003e ∩ \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ccode\u003eD\u003c/code\u003e \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e\u003ci\u003eS\u003c/i\u003e ← \u003ci\u003eS\u003c/i\u003e − \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ccode\u003eC\u003c/code\u003e \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e\u003ci\u003eS\u003c/i\u003e ← \u003ci\u003eT\u003c/i\u003e − \u003ci\u003eS\u003c/i\u003e\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd align\u003d\"center\"\u003e\u003ccode\u003eS\u003c/code\u003e \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003ctd\u003e\u003ci\u003eS\u003c/i\u003e ← \u003ci\u003eS\u003c/i\u003e ⊕ \u003ci\u003eT\u003c/i\u003e\u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n \u003c/blockquote\u003e\u003c/span\u003e\n \u003c/div\u003e"}},{"title":"Input","value":{"format":"HTML","content":"\n\n输入包含一组测试数据,由0到65,535条命令组成。每条命令占一行,形式如下:\n\n X T\n\n其中X是‘U’、‘I’、‘D’、‘C’和‘S’中的一个,T是一个区间,形式为(a,b)、(a,b]、[a,b)和[a,b]之一(a, b ∈ Z; 0 ≤ a ≤ b ≤ 65,535),取它们通常的意义。命令按在输入中出现的顺序执行。\n\n文件结束符(EOF)表示输入结束。\n"}},{"title":"Output","value":{"format":"HTML","content":"以一组不相交区间的并的形式输出在最后一条命令执行之后的集合S。这些区间在一行内输出,由单个空格分隔,按端点的升序排序。如果S是空集,输出“empty set”。"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003eU [1,5]\nD [3,3]\nS [2,4]\nC (1,5)\nI (2,3]\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e(2,3)\u003c/pre\u003e"}}]}