当前位置: 代码迷 >> C语言 >> 第一次在贵论坛求助..望大虾帮忙
  详细解决方案

第一次在贵论坛求助..望大虾帮忙

热度:192   发布时间:2008-05-04 15:03:47.0
第一次在贵论坛求助..望大虾帮忙
给你两个集合,要求{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


计算机学院ACM大学生程序设计竞赛(2006’5)


Recommend


lxj

-.- 看起来这题没啥特别 [第N次RE后,无语] 错误提示是:读写了错误的内存地址...
#include <cstdio>
#include <cstdlib>
int compare (const void * a, const void * b)
{
  return ( *(int*)a - *(int*)b );
}

int main(){
    int mA,nB;
    while(scanf("%d%d",&mA,&nB)!=EOF&&mA&&nB)
    {
        
        int i,orz,j=0;
        long int cnt[40000]={0};
        int *C=new int[mA+nB];
        for(i=0;i<mA+nB;++i)
        {
            scanf("%d",&orz);
            if(!cnt[orz])
            {
                ++cnt[orz];
                C[j]=orz;
                ++j;
            }
        }
        qsort(C,j,sizeof(int),compare);
        for(i=0;i<j;++i)
        printf("%d ",C[i]);
        printf("\n");
        delete []C;
    }
    return 0;
}
搜索更多相关的解决方案: 计算机  元素  Output  

----------------解决方案--------------------------------------------------------
原来你对int的范围的概念很有问题

[color=white]
----------------解决方案--------------------------------------------------------
能对这样函数了解也算是高手了...燕子的意思是要size_t?
----------------解决方案--------------------------------------------------------
既然决定用桶排了,何必最后加一个快排呢……Orz……
----------------解决方案--------------------------------------------------------
int是32bit...最大值为2147483647
----------------解决方案--------------------------------------------------------
一时糊涂了
#include <climits>
INT_MAX
那这题哪位给个思路..
----------------解决方案--------------------------------------------------------
cnt[orz] 也敢用?
----------------解决方案--------------------------------------------------------
本人菜鸟 别批评了 给个思路 ..
----------------解决方案--------------------------------------------------------
如果没有什么限制的话,简单点,分别排序后做合并不就行了吗?
----------------解决方案--------------------------------------------------------
楼上很正确, m/n最大值不是10000么? 定义两个size为10000的数组, 结果定义为20000的数组, 排序后合并就行了
----------------解决方案--------------------------------------------------------
  相关解决方案