hdu 1412 {A} + {B} --(去重排序,使用sort+unique)

{A} + {B}

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


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
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N = 20005;
int a[N];
int main(){
	int n,m,i;
	while(~scanf("%d %d",&n,&m)){
		for(i=0;i<m+n;i++)
			scanf("%d",&a[i]);
		sort(a,a+m+n);
		int num = unique(a,a+m+n)-a; //去重後元素個數
		for(i=0;i<num-1;i++)
			printf("%d ",a[i]);
		printf("%d\n",a[i]);
	}
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章