题目传送门
这里尤其要注意输出时要用%05d,保证输出5位,不足用0补齐。
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
#include <cstring>
using namespace std;
int a[100000];
int main()
{
int n;
cin >> n;
memset(a, -1, sizeof(a));
for (int i = 0; i < n; i++)
{
int x, y;
cin >> x >> y;
a[x] = y;
a[y] = x;
}
int m;
cin >> m;
set<int> s;
vector<int> t(m);
for (int i = 0; i < m; i++)
{
cin >> t[i];
}
for (int i = 0; i < m; i++)
{
if (a[t[i]] == -1)
{
s.insert(t[i]);
}
else
{
if (find(t.begin(), t.end(), a[t[i]]) == t.end())
{
s.insert(t[i]);
}
}
}
cout << s.size() << endl;
for (auto it = s.begin(); it != s.end(); it++)
{
if (it != s.begin())
{
cout << " ";
}
printf("%05d", *it);
}
return 0;
}