luogu#B3632. 集合运算 1

集合运算 1

题目背景

集合是数学中的一个概念,用通俗的话来讲就是:一大堆数在一起就构成了集合。

集合有如下的特性:

  • 无序性:任一个集合中,每个元素的地位都是相同的,元素之间是无序的。

  • 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。

  • 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。

元素 aa 属于集合 AA 记作 aAa\in A,反之则记作 aAa\notin A

若一个集合中不存在任何元素,则称该集合为空集,记作 \varnothing。空集是所有集合的子集。

一个集合内的元素个数称为该集合的大小。AA 集合的大小可记作 A|A|

集合 CC 是集合 AABB 的交集,当且仅当对于任何元素 aCa\in C,有 aAa\in AaBa\in B,并且对于任何元素 bCb\notin C,有 bAb\notin AbBb\notin B。记作 C=ABC=A\cap B

集合 CC 是集合 AABB 的并集,当且仅当对于任何元素 aCa\in C,有 aAa\in AaBa\in B,并且对于任何元素 bCb\notin C,有 bAb\notin AbBb\notin B。记作 C=ABC=A\cup B

简单地说,交集是由所有同时属于两个集合的元素所构成的,就像两个集合相交;而并集是由所有属于其中任意一个集合的元素所构成的,就像两个集合合并。

特别地,对于形如 {xaxb}\{x|a\le x\le b\} 的集合,可以记作 [a,b][a,b]。其中,如果左侧符号改为小于号,则左侧中括号改为小括号。右侧同理。

题目描述

现在给予两个集合 AABB,均由 006363 之间的整数组成。

请依次求出:

  • A|A|
  • ABA\cap B
  • ABA\cup B

输入格式

输入四行。

第一行一个整数 x(0x63)x(0\le x \le 63),表示集合 AA 的元素个数。

第二行 xx 个整数 a1,...axa_1,...a_x,表示集合 AA 的各个元素,保证不重复。如果 AA 是空集,则这一行没有数字。

第三行一个整数 y(0y63)y(0\le y \le 63),表示集合 BB 的元素个数。

第四行 yy 个整数 b1,...bxb_1,...b_x,表示集合 BB 的各个元素,保证不重复。如果 BB 是空集,则这一行没有数字。

输出格式

输出三行。

第一行输出一个整数,表示 A|A|

第二行输出若干个整数,表示 ABA\cap B 中对应元素,从小到大输出,用空格隔开。如果是空集,则这一行什么也不输出,保留换行。

第三行输出若干个整数,表示 ABA\cup B 中对应元素,从小到大输出,用空格隔开。如果是空集,则这一行什么也不输出,保留换行。

4
1 3 5 8
3
3 6 8
4
3 8
1 3 5 6 8
0

4
1 2 3 4
0

1 2 3 4