#include <stdio.h> int main(){ int la[200], lb[100]; // 定义存储集合A与集合B的变量 int m, n; // 定义存储集合A与集合B元素数目的变量 int i, j, iCase=0; // 定义迭代变量i、j,iCase用来记录测试数据的组数 // 读取每组测试数据的第一行,因为测试数据没有告诉几行, // 所以用判断是否读到了文件结尾来判断是否读取数据结束 while(scanf("%d", &m) != EOF){ // 用iCase已输出几行来判断是否需要输出一个空行 if(iCase++){ putchar('\n'); } // 读入集合 A 的元素 for(i=0;i<m;i++){ scanf("%d", &la[i]); } // 读入集合 B 的元素数目和元素 scanf("%d", &n); for(i=0;i<n;i++){ scanf("%d", &lb[i]); } // 输出集合 A 的元素 for(i=0;i<m;i++){ if(i){ putchar(' '); } printf("%d", la[i]); } putchar('\n'); // 输出集合 B 的元素 for(i=0;i<n;i++){ if(i){ putchar(' '); } printf("%d", lb[i]); } putchar('\n'); // 依次从集合 B 中取出元素插入到集合 A 的尾部 for(i=0;i<n;i++){ // 判断集合 B 中第 i 个元素是不是在集合 A 中也有 for(j=0;j<m;j++){ if(lb[i] == la[j]){ break; } } // 如果找完集合 A 中 m 个元素仍未找到集合 B 中的第 i 个元素, // 说明在集合 A 中不存在该元素,则将其插入到尾部。同时集合 A 的总数目加 1。 if(j >= m){ la[m] = lb[i]; m++; } // 将集合 B 中的元素插入到集合 A 的尾部后,将集合 A 的所有元素输出 for(j=0;j<m;j++){ if(j){ putchar(' '); } printf("%d", la[j]); } putchar('\n'); } } return 0; } /************************************************************** Problem: 2135 User: admin Language: C++ Result: Accepted Time:12 ms Memory:1144 kb ****************************************************************/