andre_joy

导航

hdu 1412

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1412

题意:中文……

mark:先排序,再一起扫描一遍。

代码:

#include <stdio.h>
#include <stdlib.h>

int cmp(const void *a, const void *b)
{
    return *(int *)a - *(int *)b;
}

int a[10010],b[10010],c[20010];

int main()
{
    int n,m;
    int i,j,k;
    while(~scanf("%d%d", &n, &m))
    {
        for(i = 0; i < n; i++)
            scanf("%d", a+i);
        for(i = 0; i < m; i++)
            scanf("%d", b+i);
        qsort(a, n, 4, cmp);
        qsort(b, n, 4, cmp);
        for(i = j = k = 0; i < n && j < m; )
            if(a[i] < b[j]) c[k++] = a[i], i++;
            else if(a[i] > b[j]) c[k++] = b[j], j++;
            else c[k++] = a[i], i++, j++;
        if(j < m)
            for(; j < m; j++,k++)
                c[k] = b[j];
        else
            for(; i < n; i++,k++)
                c[k] = a[i];
        for(i = 0; i < k; i++)
        {
            if(i) printf(" ");
            printf("%d", c[i]);
        }
        printf("\n");
    }
    return 0;
}

posted on 2012-07-01 21:15  andre_joy  阅读(130)  评论(0编辑  收藏  举报