{"trustable":true,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv class\u003d\"panel_content\"\u003e青蛙先生最近学习了一种基本的数据结构,叫做栈。栈有一些基本操作:\u003cbr\u003e\u003cbr\u003e$\\bullet $ PUSH x:将x放在栈顶,x必须为0或1。\u003cbr\u003e$\\bullet $ POP:将栈顶的元素弹出。\u003cbr\u003e\u003cbr\u003e由于这对于可以轻松证明“五点共圆”的著名数学家青蛙先生来说太简单了,他想出了一些激动人心的操作:\u003cbr\u003e\u003cbr\u003e$\\bullet $REVERSE:只需将栈反转,底部元素变为栈顶元素,倒数第二个元素变为倒数第二个元素...以此类推。\u003cbr\u003e$\\bullet $QUERY:按照以下方式打印所得值:从上到下取出元素,然后从左到右依次进行 \u003cb\u003eNAND\u003c/b\u003e 操作,即如果$a_{top},a_{top-1},\\cdots , a_1$对应于从栈顶到栈底的元素,则进行$value \u003d a_{top}$ nand $a_{top-1}$ nand ... nand $a_1$。注意,进行QUERY操作后,栈\u003cb\u003e不会\u003c/b\u003e改变。特别地,如果栈现在为空,则需要打印“\u003cb\u003eInvalid\u003c/b\u003e.”(不带引号)。\u003cbr\u003e\u003cbr\u003e顺便说一下,\u003cb\u003eNAND\u003c/b\u003e是一种基本的二进制操作:\u003cbr\u003e\u003cbr\u003e$\\bullet $ 0 nand 0 \u003d 1\u003cbr\u003e$\\bullet $ 0 nand 1 \u003d 1\u003cbr\u003e$\\bullet $ 1 nand 0 \u003d 1\u003cbr\u003e$\\bullet $ 1 nand 1 \u003d 0\u003cbr\u003e\u003cbr\u003e因为青蛙先生现在需要做一些微小的贡献,你应该帮助他完成这个数据结构:打印每个QUERY的答案,或者告诉他是无效的。\u003cbr\u003e\u003c/div\u003e"}},{"title":"输入","value":{"format":"HTML","content":"第一行包含一个整数T($T \\leq 20$),表示测试用例的数量。\u003cbr\u003e\u003cbr\u003e对于每个测试用例,第一行包含一个整数N($2 \\leq N \\leq 200000$),表示操作的数量。\u003cbr\u003e\u003cbr\u003e在接下来的N行中,第i行包含以下操作之一:\u003cbr\u003e\u003cbr\u003e$\\bullet $ PUSH x(x \u003cb\u003e必须\u003c/b\u003e为0或1)\u003cbr\u003e$\\bullet $ POP\u003cbr\u003e$\\bullet $ REVERSE\u003cbr\u003e$\\bullet $ QUERY\u003cbr\u003e\u003cbr\u003e保证在进行POP操作时,当前栈不会为空。\u003cbr\u003e"}},{"title":"输出","value":{"format":"HTML","content":"对于每个测试用例,首先输出一行“Case #x:w”,其中x是案例编号(从1开始)。然后跟着几行,第i行包含一个整数,表示第i个QUERY操作的答案。特别地,如果第i个QUERY是无效的,只需打印“\u003cb\u003eInvalid.\u003c/b\u003e”(不带引号)。 (请参见示例以获取更多详细信息。)\u003cbr\u003e"}},{"title":"示例","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\u003e2\r\n8\r\nPUSH 1\r\nQUERY\r\nPUSH 0\r\nREVERSE\r\nQUERY\r\nPOP\r\nPOP\r\nQUERY\r\n3\r\nPUSH 0\r\nREVERSE\r\nQUERY\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eCase #1:\r\n1\r\n1\r\nInvalid.\r\nCase #2:\r\n0\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"提示","value":{"format":"HTML","content":"\u003cbr\u003e在第一个示例中:在第一个查询期间,栈只包含一个元素1,因此答案为1。然后在第二个查询中,栈包含0,l\u003cbr\u003e(从底部到顶部),因此第二个的答案也是1。在第三个查询中,栈中没有元素,因此应该输出Invalid。\u003cbr\u003e"}}]}