#600. 并集与交集

并集与交集

题目背景

高一年级的小舞同学刚刚学习了并集和交集的概念。为了让小舞同学的知识记得更牢固,妈妈让小舞讲给刚上初四的弟弟小空:
1.由集合A和集合B中的所有公共元素构成的集合C,称为集合A与集合B的交集,记作AB=CA\cap B=C,即AB={xxAxB}A\cap B=\{x|x\in A且x\in B\}.

2.由集合A和集合B中的所有元素构成的集合C,称为集合A与集合B的并集,记作AB=CA\cup B=C,即AB={xxAxB}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且小于10000的整数。

输出格式

第一行输出两个数组的并集,用空格隔开这些元素

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

样例

样例输入 #1

3 4
2 1 3
5 4 3 2

样例输出 #2

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:保证其中一个数组的最大值一定小于另外一个数组的最小值。
  • 性质4:保证两个输入数组内部分别无重复数据。
  • 对于10% 的数据,一定同时满足性质1、2、3、4;
  • 对于40%的数据,一定同时满足性质1、2、4;
  • 对于80%的数据,一定满足性质4;
  • 对于100%的数据,2n,m100002 \le n,m \le 10000