#z198. 集合的交并差运算
集合的交并差运算
## 题目描述
小蓝有两堆数字卡片,分别对应两个整数集合A和B。他需要你完成以下操作:
- 计算集合A和B的并集:包含A、B中所有不重复数字的集合,按升序排列;
- 计算集合A和B的交集:同时出现在A、B中的数字,按升序排列;
- 计算集合A相对于B的差集:出现在A中但不出现在B中的数字,按升序排列;
- 计算集合B相对于A的差集:出现在B中但不出现在A中的数字,按升序排列。
请你用C++的set容器实现上述功能,依次输出这四个集合的元素个数和具体元素(若集合为空,个数输出0,元素行输出空行)。
## 输入描述
第一行输入整数n,表示集合A的元素个数(n ≥ 1); 第二行输入n个整数,作为集合A的元素,整数之间用空格分隔; 第三行输入整数m,表示集合B的元素个数(m ≥ 1); 第四行输入m个整数,作为集合B的元素,整数之间用空格分隔; 每个整数的范围是[-1000, 1000]。
## 输出描述
输出共8行: 第1行:并集的元素个数; 第2行:并集的元素(升序,空格分隔,空集则输出空行); 第3行:交集的元素个数; 第4行:交集的元素(升序,空格分隔,空集则输出空行); 第5行:A-B差集的元素个数; 第6行:A-B差集的元素(升序,空格分隔,空集则输出空行); 第7行:B-A差集的元素个数; 第8行:B-A差集的元素(升序,空格分隔,空集则输出空行)。
## 输入样例
6
5 3 7 9 1 3
5
7 9 2 4 7
## 输出样例
7
1 2 3 4 5 7 9
2
7 9
3
1 3 5
2
2 4
## 数据范围
- 1 ≤ n, m ≤ 100
- 每个整数的取值范围:[-1000, 1000]