HDU1412{A}+{B}

mac2025-11-05  16

题目: 给你两个集合,要求{A} + {B}. 注:同一个集合中不会有两个相同的元素. Input 每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开. Output 针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开. Sample Input

1 2 1 2 3 1 2 1 1 2

Sample Output

1 2 3 1 2

题意就是把两个集合合并; 需要注意的是最后一个数输出后没有空格; Accept Code:

#include <iostream> #include <algorithm> using namespace std; int s[20005]; int main() { int n,m,i,t; while(scanf("%d%d", &n,&m)!=EOF) { for(i=0; i<n+m; i++) scanf("%d", &s[i]); sort(s,s+n+m);t=n+m; cout<<s[0]<<" "; if(s[n+m-1]==s[n+m-2]) t--; for(i=1; i<t-1; i++) { if(s[i]!=s[i-1]) cout<<s[i]<<" "; } cout<<s[t-1]<<endl; } return 0; }
最新回复(0)