問題描述
給出兩個整數集合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
本來是想用set做的 可是map更熟一點 注釋掉的是剛開始的思路
#include#include#include using namespace std;
int main()
cin >> m;
int b[m];
for(int i=0; i> t;
b[i] = t;
p[t]++;
// max = (t>max)? t : max;
}sort(b, b+m);
/* for(map::iterator iter=p.begin();iter!=p.end();iter++)
}if(flag)
cout << endl;
flag = 0;
for(map::iterator iter=p.begin();iter!=p.end();iter++)
}if(flag)
cout << endl;
flag = 0;
int i=0;
for(map::iterator iter=p.begin();iter!=p.end();iter++)
else
cout << iter->first << " ";
}cout << endl;
/*for(int i=1; i1) p[i] = 0;
}cout << endl;
for(int i=1; icout << endl;
*/ return 0;
}
演算法訓練 集合運算
問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數。第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。集合中的...
演算法訓練 集合運算
演算法訓練 集合運算 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。輸入格式 第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數...
演算法訓練 集合運算
給出兩個整數集合a b,求出他們的交集 並集以及b在a中的餘集。第一行為乙個整數n,表示集合a中的元素個數。第二行有n個互不相同的用空格隔開的整數,表示集合a中的元素。第三行為乙個整數m,表示集合b中的元素個數。第四行有m個互不相同的用空格隔開的整數,表示集合b中的元素。集合中的所有元素均為int範...