題目描述:
資源限制
時間限制:1.0s 記憶體限制:512.0mb
問題描述
給出兩個整數集合a、b,求出他們的交集、並集以及b在a中的餘集。
輸入格式
第一行為乙個整數n,表示集合a中的元素個數。
第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。
第三行為乙個整數m,表示集合b中的元素個數。
第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。
集合中的所有元素均為int範圍內的整數,n、m<=1000。
輸出格式
第一行按從小到大的順序輸出a、b交集中的所有元素。
第二行按從小到大的順序輸出a、b並集中的所有元素。
第三行按從小到大的順序輸出b在a中的餘集中的所有元素。
樣例輸入
51 2 3 4 5
52 4 6 8 10
樣例輸出
2 41 2 3 4 5 6 8 10
1 3 5
樣例輸入
41 2 3 4
35 6 7
樣例輸出
1 2 3 4 5 6 7
1 2 3 4
思路:
求兩個集合的並集,交集,以及集合b在集合a中的補集。思路很簡單,直接看**吧!哪不會可以提出來!
注意:(1)並集陣列至少開到2000。(因為集合a和集合b最大1000).
(2)交集和補集的陣列個數可能為0個,結果不能輸出多餘的換行。
ac**:
#include
#include
#include
#include
#include
#include
using
namespace std;
int a[
1000
],b[
1000];
int bing[
2000
],jiao[
1000
],bu[
1000];
intmain()
}if(!flag)
//陣列b中的該元素與陣列a中的該元素相同,不必加到並集中
bing[k++
]=b[i]
;else
jiao[k1++
]=b[i];}
//求b在a中的補集
int k2=0;
for(i=
0;iif(
!flag)
//新增到補集中去
bu[k2++
]=a[i];}
sort
(bing,bing+k)
;sort
(jiao,jiao+k1)
;sort
(bu,bu+k2);if
(k1)
//交集中有元素才輸出
for(i=
0;i) cout<<<
" ";
cout
//補集中有元素才輸出
return0;
}
藍橋杯 演算法訓練 集合運算
演算法訓練 集合運算 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數...
藍橋杯 演算法訓練 集合運算
問題描述 給出兩個整數集合a b a ba b,求出他們的交集 並集以及b bb在a aa中的餘集。輸入格式 第一行為乙個整數n nn,表示集合a aa中的元素個數。第二行有n nn個互不相同的用空格隔開的整數,表示集合a aa中的元素。第三行為乙個整數m mm,表示集合b bb中的元素個數。第四行...
藍橋杯 演算法訓練 集合運算
給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數。第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。集合中的所有元素均...