首页 > 代码库 > {A} + {B}

{A} + {B}

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
 
 1 #include <stdio.h> 2  3 int main(){ 4     int array[20001]; 5     int n; 6     int m; 7     int i; 8     int j; 9     int k;10     int number;11     int flag;12     int temp;13 14     while(scanf("%d%d",&n,&m)!=EOF){15         for(i=0;i<n;i++){16             scanf("%d",&number);17             array[i]=number;18         }19 20         k=n;21         for(i=0;i<m;i++){22             scanf("%d",&number);23 24             flag=0;25             for(j=0;j<k;j++){26                 if(number==array[j]){27                     flag=1;28                     break;29                 }30             }31 32             if(flag==0){33                 array[k]=number;34                 k++;35             }36         }37 38         for(i=0;i<k-1;i++){39             for(j=i+1;j<k;j++){40                 if(array[i]>array[j]){41                     temp=array[i];42                     array[i]=array[j];43                     array[j]=temp;44                 }45             }46         }47 48         for(i=0;i<k;i++)49             if(i!=0)50                 printf(" %d",array[i]);51 52             else53                 printf("%d",array[i]);54 55         printf("\n");56     }57     58 59     return 0;60 }

 

 

{A} + {B}