P4940 Portal 2
题目背景
某地 ENLIGHTENED 的“XM 研究所”正在研究 Portal 的处理法则,想要揭示“XM 能量”的来源以及应用“XM 能量”。ENLIGHTENED 的首席科学家 Jacks 发现其能量的运算法则以及运算方法,但是方法十分复杂,仅靠人手工计算是很难算出答案的,所以它需要你协助他完成计算。
题目描述
Portal 计算“XM 能量”是通过个 $2$ 个栈($0$ 号栈、$1$ 号栈)实现的,它把对“XM 能量”的操作如下:
- `PUSH X NUM`:把 $NUM$ 加入到 $X$ 号栈的栈顶。
- `POP X`:把 $X$ 号栈的栈顶元素**删除**。
- `ADD X`:**取出** $0$ 号栈和 $1$ 号栈的元素各一个,并且把它的和放入 $X$ 号栈。
- `SUB X`:**取出** $0$ 号栈和 $1$ 号栈的元素各一个,并且把它的差的绝对值放入 $X$ 号栈。
- `DEL X`:**清空** $X$ 号栈中所有元素不管栈是否为空。
- `MOVE X Y`:循环操直到 $Y$ 号栈为空,把 $Y$ 号栈的栈顶元素加入到 $X$ 号栈,删除 $Y$ 号栈的栈顶元素(**数据保证 $X$ 和 $Y$ 不相同**)。
- `SWAP`:将两个栈的所有元素调换。
- `END`:代表命令结束,并且分两行分别输出 $0$ 号栈和 $1$ 号栈由栈顶到栈底的元素的值,若栈内无元素,输出 `NONE`。数据保证指令以 `END` 结束且仅有一个 `END`,并且也需要输出 `SUCCESS`。
- ~~`AKNOI` 等为无效操作,**无效操作后不接数字**。~~**更正不会有类似无效操作**。
对于每一行指令,若当前指令成功执行输出 `SUCCESS`,若**取出**或**删除**元素时栈内为空或者没有对应指令输出 `UNSUCCESS` 并且不执行该行指令。
输入格式
输入若干行指令,以 `END` 指令结束。
输出格式
对于每一次操作,都要对应输出 `SUCCESS` 或者 `UNSUCCESS`,对于 `END` 根据指令描述输出栈内元素。
说明/提示
设命令总数为 $n$。
对于 $20\%$ 的数据,数据保证不会出现 `MOVE,SWAP` 操作,$1\le n \leq 100$;
对于 $40\%$ 的数据,$1\le n \leq 1000$;
对于 $60\%$ 的数据,数据保证 `MOVE,SWAP` 的操作次数不会超过 $10000$ 次,$1\leq n \leq 10^5$;
对于 $100\%$ 的数据,$0 \leq X,Y \leq 1,1\leq n \leq 10^6$;
**数据保证无论任何情况,栈中元素的值 $X$ 满足 $0 \leq X \leq 2^{63}-1$。**
[题目创意来源 OIERBBS](https://www.oierbbs.cn)。