{A} + {B}

1704 ワード

{A} + {B}
Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7266    Accepted Submission(s): 2948
Problem Description
2つの集合をあげて{A}+{B}.
注意:同じコレクションに同じ要素は2つもありません.
 
Input
各組の入力データは3行に分けられ、1行目には2つの数字n,m(0 
Output
各グループのデータに対して1行のデータを出力、マージ後の集合を表す、小さいから大きいまでの出力が要求され、各要素の間にスペースが隔てられている.
 
Sample Input

   
   
   
   
1 2 1 2 3 1 2 1 1 2

 
Sample Output

   
   
   
   
1 2 3 1 2

 
Author
xhd
 
Source
HDU 2006-5 Programming Contest
 
Recommend
lxj
 
STLのセット容器をそのまま使えばいい
AC CODE:
#include <iostream>
#include <cstdio>
#include <set>
using namespace std;

int main()
{
    int n, m, i;
    set<int> S;
    set<int>::iterator it;
    while(scanf("%d%d", &n, &m) != EOF)
    {
        S.clear();
        n += m;
        while(n-- && scanf("%d", &i))  S.insert(i);
        it = S.begin();
        printf("%d", *it);
        for(it++; it != S.end(); it++)
            printf(" %d", *it);
        printf("
"); } return 0; }