题目
给你两个集合,计算其并集,即 <math> <semantics> <mrow> <mo> { </mo> <mi> A </mi> <mo> } </mo> <mo> + </mo> <mo> { </mo> <mi> B </mi> <mo> } </mo> </mrow> <annotation encoding="application/x-tex"> \{A\} + \{B\} </annotation> </semantics> </math>{A}+{B}。
注: <math> <semantics> <mrow> <mo> { </mo> <mi> A </mi> <mo> } </mo> <mo> + </mo> <mo> { </mo> <mi> B </mi> <mo> } </mo> </mrow> <annotation encoding="application/x-tex"> \{A\} + \{B\} </annotation> </semantics> </math>{A}+{B} 中不允许出现重复元素,但是 <math> <semantics> <mrow> <mo> { </mo> <mi> A </mi> <mo> } </mo> </mrow> <annotation encoding="application/x-tex"> \{A\} </annotation> </semantics> </math>{A} 与 <math> <semantics> <mrow> <mo> { </mo> <mi> B </mi> <mo> } </mo> </mrow> <annotation encoding="application/x-tex"> \{B\} </annotation> </semantics> </math>{B} 之间可能存在相同元素。
输入格式
输入数据分为三行,第一行有两个数字 <math> <semantics> <mrow> <mi> n </mi> <mo separator="true"> , </mo> <mi> m </mi> <mo> ( </mo> <mn> 0 </mn> <mo> < </mo> <mi> n </mi> <mo separator="true"> , </mo> <mi> m </mi> <mo> ≤ </mo> <mn> 10000 </mn> <mo> ) </mo> </mrow> <annotation encoding="application/x-tex"> n, m(0 < n,m\leq 10000) </annotation> </semantics> </math>n,m(0<n,m≤10000),分别表示集合 A 和集合 B 的元素个数。
后两行分别表示集合 A 和集合 B。
每个元素为不超出 int 范围的整数,每个元素之间用一个空格隔开。
输出格式
输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间用一个空格隔开。
样例输入
1 2
1
2 3
样例输出
1 2 3
样例输入
1 2
1
1 2
样例输出
1 2
题解
set 的基本操作
#include<iostream>
#include<set>
using namespace std;
int main(){
set<int> s;
int n,m;
cin>>n>>m;
int t;
for(int i=0;i<n+m;i++){
cin>>t;
s.insert(t);
}
bool flag = false;
for(set<int>::iterator it = s.begin();it != s.end();it++){
if(!flag)
flag = true;
else
cout<<" ";
cout<<(*it);
}
return 0;
}