题目:题目链接
题意:题目就是给你两个集合求两个集合的和,要符合集合的特性,无重复,并且要按照排序后的顺序输出
分析:这里使用STL的set,set具有自动排序和去重的功能,可以很方便的直接把两个集合当中的数字插进去,最后直
接输出就可以了:
代码:
#include <iostream>
#include <cstdio>
#include <string>
#include <string.h>
#include <map>
#include <vector>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <queue>
#include <set>
#include <stack>
#include <functional>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <numeric>
#include <cassert>
#include <bitset>
#include <stack>
#include <ctime>
#include <list>
#define INF 0x7fffffff
#define max3(a,b,c) (max(a,b)>c?max(a,b):c)
#define min3(a,b,c) (min(a,b)<c?min(a,b):c)
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
#define maxn 10001
int A[maxn];
int B[maxn];
int n, m;
int main()
{
while(scanf("%d%d", &n, &m) == 2)
{
set<int> sum;
mem(A, 0);
mem(B, 0);
for(int i = 0; i < n; ++i)
{
scanf("%d", &A[i]);
sum.insert(A[i]);
}
for(int j = 0; j < m; ++j)
{
scanf("%d", &B[j]);
sum.insert(B[j]);//
}
set<int>::iterator it;
int i = 0;
for(it = sum.begin(); it != sum.end(); it++, i++)
{
if(i == 0)
printf("%d", *it);
else
printf(" %d", *it);
}
printf("\n");
}
return 0;
}