トピック
入力サンプル
5
1 3 5 7 9
3
2 3 5
出力サンプル
3
1 7 9
コード
#include <iostream>
#include <list>
#include <unordered_set>
using namespace std;
int main()
{
int n1, n2;
cin >> n1;
list<int> a;//①
for (int i = 0; i < n1; i++)
{
int value;
cin >> value;
a.push_back(value);
}
cin >> n2;//②
list<int> b;
for (int i = 0; i < n2; i++)
{
int value;
cin >> value;
b.push_back(value);
}
unordered_set<int> b_set(b.begin(), b.end());//③
list<int> result;
for (const int& val : a) //④
{
if (b_set.find(val) == b_set.end())
{
result.push_back(val);
}
}
cout << result.size() <<endl;//⑤
for (auto it = result.begin(); it != result.end(); ++it)
{
cout << *it;
if (next(it) != result.end())
{
//⑦
cout << " ";
}
}
return 0;
}
① 最初のリンク リストの番号と要素を入力します。
② 2 番目のリンク リストの番号と要素を入力します。 ③
unowned_set を使用して、クイック検索のために 2 番目のリストの要素を保存します。
④最初のリストを走査し、2番目のリストに要素が見つからない場合は結果リストに追加します。
⑤結果リストのサイズを出力します。
⑥最後に結果リストの要素をスペースで区切って出力します(
最後にスペースはありませんので注意)この判定を追加する必要があります。