{"trustable":true,"prependHtml":"\u003cstyle type\u003d\"text/css\"\u003e\n section pre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333;\n background: rgba(255, 255, 255, 0.5);\n border: 1px solid #ccc;\n border-radius: 6px;\n }\n\u003c/style\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027\\\\(\u0027, right: \u0027\\\\)\u0027, display: false},\n {left: \u0027\\\\[\u0027, right: \u0027\\\\]\u0027, display: true}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"问题描述","value":{"format":"HTML","content":"\u003csection\u003e\n\u003cp\u003e给定一个由大写和小写英文字母、\u003ccode\u003e(\u003c/code\u003e 和 \u003ccode\u003e)\u003c/code\u003e 组成的字符串 \u003cvar\u003e\\(S \u003d S_1 S_2 S_3 \\dots S_{|S|}\\)\u003c/var\u003e。\u003cbr\u003e\n字符串 \u003cvar\u003e\\(S\\)\u003c/var\u003e 中的括号是正确匹配的。\u003c/p\u003e\n\u003cp\u003e重复执行以下操作,直到无法再执行操作为止:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e首先,选择一对满足以下所有条件的整数对 \u003cvar\u003e\\((l, r)\\)\u003c/var\u003e:\u003cul\u003e\n\u003cli\u003e\u003cvar\u003e\\(l \u0026lt; r\\)\u003c/var\u003e\u003c/li\u003e\n\u003cli\u003e\u003cvar\u003e\\(S_l \u003d\\)\u003c/var\u003e \u003ccode\u003e(\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003cvar\u003e\\(S_r \u003d\\)\u003c/var\u003e \u003ccode\u003e)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e每个字符 \u003cvar\u003e\\(S_{l+1}, S_{l+2}, \\dots, S_{r-1}\\)\u003c/var\u003e 都是大写或小写英文字母。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e令 \u003cvar\u003e\\(T \u003d \\overline{S_{r-1} S_{r-2} \\dots S_{l+1}}\\)\u003c/var\u003e。\u003cul\u003e\n\u003cli\u003e这里,\u003cvar\u003e\\(\\overline{x}\\)\u003c/var\u003e 表示通过切换 \u003cvar\u003e\\(x\\)\u003c/var\u003e 中每个字符的大小写(大写变小写,小写变大写)得到的字符串。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e然后,删除 \u003cvar\u003e\\(l\\)\u003c/var\u003e 到 \u003cvar\u003e\\(r\\)\u003c/var\u003e 位置的字符,并在删除位置插入 \u003cvar\u003e\\(T\\)\u003c/var\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e请参考示例输入和输出以获得更清晰的解释。\u003c/p\u003e\n\u003cp\u003e可以证明通过上述操作可以删除字符串中的所有 \u003ccode\u003e(\u003c/code\u003e 和 \u003ccode\u003e)\u003c/code\u003e,且最终字符串与执行操作的方式和顺序无关。\u003cbr\u003e\n确定最终字符串。\u003c/p\u003e\n\u003cdetails\u003e\n\u003csummary\u003e什么是字符串 \u003cvar\u003e\\(S\\)\u003c/var\u003e 中的括号是正确匹配的意思?\u003c/summary\u003e\n首先,定义正确的括号序列如下:\n\n\u003cul\u003e\n\u003cli\u003e一个正确的括号序列是满足以下条件之一的字符串:\u003c/li\u003e\n\u003cul\u003e\n\u003cli\u003e它是一个空字符串。\u003c/li\u003e\n\u003cli\u003e存在一个正确的括号序列 \u003cvar\u003e\\(A\\)\u003c/var\u003e,且该字符串是按照 \u003ccode\u003e(\u003c/code\u003e、\u003cvar\u003e\\(A\\)\u003c/var\u003e、\u003ccode\u003e)\u003c/code\u003e 的顺序连接而成的。\u003c/li\u003e\n\u003cli\u003e存在非空的正确的括号序列 \u003cvar\u003e\\(A\\)\u003c/var\u003e 和 \u003cvar\u003e\\(B\\)\u003c/var\u003e,且该字符串是按照 \u003cvar\u003e\\(A\\)\u003c/var\u003e 和 \u003cvar\u003e\\(B\\)\u003c/var\u003e 的顺序连接而成的。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/ul\u003e\n\n如果从 \u003cvar\u003e\\(S\\)\u003c/var\u003e 中提取出的 \u003ccode\u003e(\u003c/code\u003e 和 \u003ccode\u003e)\u003c/code\u003e,而不改变顺序,则字符串 \u003cvar\u003e\\(S\\)\u003c/var\u003e 中的括号是正确匹配的。\n\u003c/details\u003e\n\n\u003c/section\u003e"}},{"title":"约束条件","value":{"format":"HTML","content":"\u003csection\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cvar\u003e\\(1 \\le |S| \\le 5 \\times 10^5\\)\u003c/var\u003e\u003c/li\u003e\n\u003cli\u003e\u003cvar\u003e\\(S\\)\u003c/var\u003e 由大写和小写英文字母、\u003ccode\u003e(\u003c/code\u003e 和 \u003ccode\u003e)\u003c/code\u003e 组成。\u003c/li\u003e\n\u003cli\u003e字符串 \u003cvar\u003e\\(S\\)\u003c/var\u003e 中的括号是正确匹配的。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/section\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003csection\u003e\n\u003cp\u003e输入以以下格式从标准输入中给出:\u003c/p\u003e\n\u003cpre\u003e\u003cvar\u003e\\(S\\)\u003c/var\u003e\r\n\u003c/pre\u003e\n\u003c/section\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003csection\u003e\n\u003cp\u003e打印最终字符串。\u003c/p\u003e\n\u003c/section\u003e"}},{"title":"示例 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e((A)y)x\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eYAx\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003csection\u003e\n\n\u003c/section\u003e\n\n\u003csection\u003e\n\n\u003cp\u003e让我们执行 \u003cvar\u003e\\(S \u003d\\)\u003c/var\u003e \u003ccode\u003e((A)y)x\u003c/code\u003e 次操作。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e选择 \u003cvar\u003e\\(l\u003d2\\)\u003c/var\u003e 和 \u003cvar\u003e\\(r\u003d4\\)\u003c/var\u003e。子串 \u003ccode\u003e(A)\u003c/code\u003e 被移除并替换为 \u003ccode\u003ea\u003c/code\u003e。\u003cul\u003e\n\u003cli\u003e执行此操作后,\u003cvar\u003e\\(S \u003d\\)\u003c/var\u003e \u003ccode\u003e(ay)x\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e选择 \u003cvar\u003e\\(l\u003d1\\)\u003c/var\u003e 和 \u003cvar\u003e\\(r\u003d4\\)\u003c/var\u003e。子串 \u003ccode\u003e(ay)\u003c/code\u003e 被移除并替换为 \u003ccode\u003eYA\u003c/code\u003e。\u003cul\u003e\n\u003cli\u003e执行此操作后,\u003cvar\u003e\\(S \u003d\\)\u003c/var\u003e \u003ccode\u003eYAx\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e移除括号后,字符串变为 \u003ccode\u003eYAx\u003c/code\u003e,应该打印出来。\u003c/p\u003e\n\u003c/section\u003e"}},{"title":"示例 2","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e((XYZ)n(X(y)Z))\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eXYZNXYZ\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003csection\u003e\n\n\u003c/section\u003e\n\n\u003csection\u003e\n\n\u003cp\u003e让我们执行 \u003cvar\u003e\\(S \u003d\\)\u003c/var\u003e \u003ccode\u003e((XYZ)n(X(y)Z))\u003c/code\u003e 次操作。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e选择 \u003cvar\u003e\\(l\u003d10\\)\u003c/var\u003e 和 \u003cvar\u003e\\(r\u003d12\\)\u003c/var\u003e。子串 \u003ccode\u003e(y)\u003c/code\u003e 被移除并替换为 \u003ccode\u003eY\u003c/code\u003e。\u003cul\u003e\n\u003cli\u003e执行此操作后,\u003cvar\u003e\\(S \u003d\\)\u003c/var\u003e \u003ccode\u003e((XYZ)n(XYZ))\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e选择 \u003cvar\u003e\\(l\u003d2\\)\u003c/var\u003e 和 \u003cvar\u003e\\(r\u003d6\\)\u003c/var\u003e。子串 \u003ccode\u003e(XYZ)\u003c/code\u003e 被移除并替换为 \u003ccode\u003ezyx\u003c/code\u003e。\u003cul\u003e\n\u003cli\u003e执行此操作后,\u003cvar\u003e\\(S \u003d\\)\u003c/var\u003e \u003ccode\u003e(zyxn(XYZ))\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e选择 \u003cvar\u003e\\(l\u003d6\\)\u003c/var\u003e 和 \u003cvar\u003e\\(r\u003d10\\)\u003c/var\u003e。子串 \u003ccode\u003e(XYZ)\u003c/code\u003e 被移除并替换为 \u003ccode\u003ezyx\u003c/code\u003e。\u003cul\u003e\n\u003cli\u003e执行此操作后,\u003cvar\u003e\\(S \u003d\\)\u003c/var\u003e \u003ccode\u003e(zyxnzyx)\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e选择 \u003cvar\u003e\\(l\u003d1\\)\u003c/var\u003e 和 \u003cvar\u003e\\(r\u003d9\\)\u003c/var\u003e。子串 \u003ccode\u003e(zyxnzyx)\u003c/code\u003e 被移除并替换为 \u003ccode\u003eXYZNXYZ\u003c/code\u003e。\u003cul\u003e\n\u003cli\u003e执行此操作后,\u003cvar\u003e\\(S \u003d\\)\u003c/var\u003e \u003ccode\u003eXYZNXYZ\u003c/code\u003e。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e移除括号后,字符串变为 \u003ccode\u003eXYZNXYZ\u003c/code\u003e,应该打印出来。\u003c/p\u003e\n\u003c/section\u003e"}},{"title":"示例 3","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e(((()))(()))(())\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003csection\u003e\n\n\u003c/section\u003e\n\n\u003csection\u003e\n\n\u003cp\u003e最终结果可能是一个空字符串。\u003c/p\u003e\n\u003c/section\u003e"}},{"title":"示例 4","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003edF(qT(plC())NnnfR(GsdccC))PO()KjsiI((ysA)eWW)ve\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003edFGsdccCrFNNnplCtQPOKjsiIwwEysAve\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003csection\u003e\n\n\u003c/section\u003e\n\n\u003csection\u003e\n\u003c/section\u003e"}}]}