思路:
1.以map映射存储每个人的伴侣;
2.用set存储客人,会自动排序,然后依次遍历,若遇到某人的伴侣也在set中,移除两人;
3.最后输出set 的大小和里面的客人id,注意id要用%05d输出;
代码:
#include<iostream>
#include<map>
#include<set>
using namespace std;
int main(){
int n,m;
map<int,int> mp;
set<int> st;
cin>>n;
for(int i=0;i<n;i++){
int a,b;
cin>>a>>b;
mp[a]=b;
mp[b]=a;
}
cin>>m;
for(int i=0;i<m;i++){
int id;
cin>>id;
st.insert(id);
}
for(auto e:st)
if(st.find(mp[e])!=st.end()){
st.erase(mp[e]);
st.erase(e);
}
printf("%d
",st.size());
for(set<int>::iterator it=st.begin();it!=st.end();it++)
printf(it==st.begin()?"%05d":" %05d",*it);
return 0;
}