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; }