标签:
1 #include<stdio.h> 2 #include<set> 3 using namespace std; 4 const int N=1000+5; 5 6 int n,m; 7 int a[N], b[N]; 8 9 int main() 10 { 11 int i, j; 12 while(scanf("%d", &n)==1) 13 { 14 set<int> s; //保存并集 15 set<int> cha; //保存差集 16 int lx=0, ly=0; 17 bool f=0; 18 19 for(i=0; i<n; i++) 20 { 21 scanf("%d", &a[i]); 22 s.insert(a[i]); 23 cha.insert(a[i]); 24 } 25 lx=s.size(); 26 scanf("%d", &m); 27 for(j=0; j<m; j++) 28 { 29 scanf("%d", &b[j]); 30 s.insert(b[j]); 31 ly=s.size(); 32 if(ly==lx) //插入失败,说明是交集的元素、输出 33 { 34 cha.erase(b[j]); 35 if(!f) 36 { 37 f=1; 38 printf("%d", b[j]); 39 } 40 else 41 printf(" %d", b[j]); 42 } 43 else 44 lx=ly; 45 } 46 if(f) 47 puts(""); 48 49 //输出并集 50 f=0; 51 for(set<int>::iterator it=s.begin(); it!=s.end(); it++) 52 { 53 if(!f) 54 { 55 printf("%d", *it); 56 f=1; 57 } 58 else 59 printf(" %d", *it); 60 } 61 if(f) 62 puts(""); 63 64 //输出差集 65 f=0; 66 for(set<int>::iterator itt=cha.begin(); itt!=cha.end(); itt++) 67 { 68 if(!f) 69 { 70 printf("%d", *itt); 71 f=1; 72 } 73 else 74 printf(" %d", *itt); 75 } 76 if(f) 77 puts(""); 78 } 79 return 0; 80 }
标签:
原文地址:http://www.cnblogs.com/qyy-goodluck/p/4328535.html