使用一个map负责映射夫妻
一个set储存出席宴会的人,然后判断这个人是不是在夫妻map里,这个人的对象在不在,有一个成立就放入第二个set
#include<iostream>
#include<stdio.h>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<cmath>
#include<cctype>
using namespace std;
int main() {
int n,m;
cin>>n;
map<int,int>pa;
int a,b;
for(int i=0;i<n;i++){
cin>>a>>b;
pa[a]=b;
pa[b]=a;
}
cin>>m;
set<int>s;
for(int i=0;i<m;i++){
cin>>a;
s.insert(a);
}
set<int> k;
for(auto it=s.begin();it!=s.end();it++){
//if(pa.count(it))
if(s.count(*it)==0)
k.insert(*it);
else if(s.count(pa[*it])==0){
k.insert(*it);
}
}
cout<<k.size()<<endl;
for(auto it=k.begin();it!=k.end();it++){
if(it!=k.begin())
cout<<" ";
printf("%05d",*it);
}
return 0;
}