测试点2:问题主要是和0是伴侣的时候,可能出错;
测试点4:输出保持5位
#include<iostream>
#include<unordered_map>
#include<vector>
#include<set>
using namespace std;
unordered_map <int ,int> mpp, mpp2;
set <int> st;
vector<int> v;
int main(){
int n,m,x,y;
cin>>n;
for(int i=0;i<n;i++){
cin>>x>>y;
mpp[x]=y;
mpp[y]=x;
if(x==0) mpp[y]=-1;
if(y==0) mpp[x]=-1;
}
cin>>m;
for(int i=0;i<m;i++){
cin>>x;
v.push_back(x);
mpp2[x]=true;
}
for(int i=0;i<m;i++){
x=v[i];
if(mpp[x]!= NULL){
int u=mpp[x];
if(u<0) u=0;
if(mpp2[u] == false) st.insert(x);
}
else st.insert(x);
}
printf("%d\n",st.size());
for(auto it=st.begin(); it != st.end();it++){
if(it!=st.begin()) printf(" ");
printf("%05d",*it);
}
return 0;
}