2017京东校招在线编程题——集合

来源:互联网 发布:网络数据保险箱 编辑:程序博客网 时间:2024/06/06 01:55

题目描述

给你两个集合,要求{A} + {B}。 注:同一个集合中不会有两个相同的元素。

输入描述

每组输入数据分为三行,第一行有两个数字n,m(0 ≤ n,m ≤ 10000),分别表示集合A和集合B的元素个数。后两行分别表示集合A和集合B。每个元素为不超过int范围的整数,每个元素之间有个空格隔开。

输出描述

针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开,行末无空格。

示例

输入

3 3
1 3 5
2 4 6

输出

1 2 3 4 5 6

/*直接运用STL里的set来做,比较简单*/#include<iostream>#include<iterator>#include<set>using namespace std;int main(void){    int n, m;    while (cin >> n, cin >> m)    {        set<int> st;        int num;        for (int i = 0; i < n + m; ++i)        {            cin >> num;            st.insert(num);        }        int size = st.size();        set<int>::iterator it = st.begin();        for (int i = 0; i < size - 1; ++i)        {            cout << *it << " ";            ++it;        }        cout << *it << endl;    }    return 0;}
原创粉丝点击