HDU1412-set

来源:互联网 发布:拳皇13知乎 编辑:程序博客网 时间:2024/05/17 07:23

题目:题目链接

 

题意:题目就是给你两个集合求两个集合的和,要符合集合的特性,无重复,并且要按照排序后的顺序输出

 

分析:这里使用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 10001int 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;}


 

原创粉丝点击