集合栈计算机 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
***