#86. 小空的编程题

小空的编程题

题目背景

高一年级的小舞同学刚刚学习了并集和交集的概念。为了让小舞同学的知识记得更牢固,妈妈让小舞讲给刚上初四的弟弟小空:
1. 由集合A和集合B中的 所有公共元素 构成的集合C,称为集合A与集合B的交集,记作$A\cap B=C$,即$A\cap B=\{x|x\in A且x\in B\}$.
2. 由集合A和集合B中的 所有元素 构成的集合C,称为集合A与集合B的并集,记作$A\cup B=C$,即$A\cup B=\{x|x\in A或x\in B\}$ 小空是个天才编程家,他把姐姐讲的知识和刚刚学到编程知识——数组结合起来,给她姐姐出了这么一道题,你能帮下小舞吗?

题目描述

(1)数组的并集:给定两个数组 A,B,把他们所有的元素合并在一起,并按照从小到大排序组成的集合,叫做数组 A 与数组 B 的并集;比如:数组{1, 2, 3} 和 {2, 3, 4} 的并集是 {1, 2, 3, 4}。
(2)数组的交集:给定两个数组 A,B,由所有属于数组 A 且属于数组 B 的元素,并按照从小到大排序组成的集合,所组成的集合,叫做集合 A 与集合 B 的交集;比如:数组 {1,2,3} 和 {2,3,4} 的交集为 {2,3}。
现给定 2 个数组,每个数组都含有若干元素,请分别求出两个数组的并集和交集。

输入格式

第一行有两个整数 m 和n,分别代表 A , B 两个数组的长度
第二行有 m 个整数,代表 A 数组存储的整数,用空格隔开
第三行有 n 个整数,代表 B 数组存储的整数,用空格隔开 注:两个集合的数都是大于等于 0 的整数

输出格式

第一行输出两个数组的并集,用空格隔开这些元素;
第二行输出两个数组的交集,用空格隔开这些元素,若交集为空,那么输出“NONE”。

样例

样例输入 #1
3 4
2 1 3
5 4 3 2
样例输出 #1
1 2 3 4 5
2 3
样例输入 #2
3 4
1 2 3 
5 6 7 8
样例输出 #2
1 2 3 5 6 7 8
NONE

提示

性质1:保证两个数组都是有序的。
性质2:保证两个数组的交集为空。
性质3:保证其中一个数组的最大值一定小于另外一个数组的最小值。
对于 10% 的数据,一定同时满足性质1、2、3;
对于 40% 的数据,一定同时满足性质1、2;
对于 100 %的数据,$2 \le n,m \le 10000$。