首页 > 代码库 > HDU 1412 {A} + {B}【排序+合并】

HDU 1412 {A} + {B}【排序+合并】

/*
题目大意:合并一样的数
解题思路:排序后再合并相同的数
关键点:合并相同的数
解题人:lingnichong
解题时间:2014-08-29 01:04:44
解题体会:学会了如何合并一样的数
*/


{A} + {B}

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11890    Accepted Submission(s): 4968


Problem Description
给你两个集合,要求{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
 

Author
xhd
 

Source
HDU 2006-5 Programming Contest
 


#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define MAXN 20000+10
int a[MAXN];
int main()
{
	int n,m;
	int i,j;
	memset(a,0,sizeof(a));
	while(~scanf("%d%d",&n,&m))
	{
		for(i=0;i<n+m;i++)
			scanf("%d",&a[i]);
		sort(a,a+(n+m));
		printf("%d",a[0]);
		for(i=1;i<n+m;i++)
		{
			if(a[i] != a[i-1])
				printf(" %d",a[i]);
		}
		printf("\n");
	}
	
	return 0;
} 





HDU 1412 {A} + {B}【排序+合并】