注意是从0开始的,用map的时候要注意;
#include<bits/stdc++.h>
using namespace std;
unordered_map<int, int> mp;
map<int, int> mpcnt;
vector<int> v, ans;
int main() {
int n, m, a, b;
scanf ("%d", &n);
for (int i = 0; i < n; i++) {
scanf ("%d %d", &a, &b);
mp[a + 1] = b + 1;
mp[b + 1] = a + 1;
}
scanf ("%d", &m);
for (int i = 0; i < m; i++) {
scanf ("%d", &a);
v.push_back(a);
mpcnt[a]++;
if (mp[a + 1] != 0) mpcnt[mp[a + 1] - 1]++;
}
for (auto it : v) {
if (mpcnt[it] != 2) ans.push_back(it);
}
sort(ans.begin(), ans.end());
cout << ans.size() << endl;
for (int i = 0; i < ans.size(); i++) {
if (i != 0) printf (" ");
printf ("%05d", ans[i]);
}
}
1261

被折叠的 条评论
为什么被折叠?



