集合栈计算机 The SetStack Computer
题意翻译
对于一个以集合为元素的栈,初始时栈为空。
输入的命令有如下几种:
PUSH:将空集{}压栈
DUP:将栈顶元素复制一份压入栈中
UNION:先进行两次弹栈,将获得的集合A和B取并集,将结果压栈
INTERSECTION:先进行两次弹栈,将获得的集合A和B取交集,将结果压栈
ADD:先进行两次弹栈,将获得的集合A和B中,先出栈的集合(如A先)加入到后出栈的集合,将结果压栈
输出每一步操作后栈顶集合的元素的个数。
感谢@_UKE自动机_ 提供的翻译
题目描述
[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=242&page=show_problem&problem=3248
[PDF](https://uva.onlinejudge.org/external/120/p12096.pdf)
![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA12096/a47f58aaf1d24baa64aaed6ed15dccd48dd5f68b.png)
输入输出格式
输入格式
![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA12096/96721996ef2bb9a2ce91b399fcbb00b437915294.png)
输出格式
![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA12096/327616573af74a48228f251e95d5fa3c85da575f.png)
输入输出样例
输入样例 #1
2
9
PUSH
DUP
ADD
PUSH
ADD
DUP
ADD
DUP
UNION
5
PUSH
PUSH
ADD
PUSH
INTERSECT
输出样例 #1
0
0
1
0
1
1
2
2
2
***
0
0
1
0
0
***