#include<iostream> #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #include<algorithm> #include<map> #include<vector> #include<queue> #include<set> using namespace std; //此题单身狗的定义为没老婆或老婆没来 //重点是isExist数组的灵活运用 int main(){ int n;//n对夫妻 int m;//m人参加party scanf("%d",&n);//夫妻数 vector<int>couple(100000); for(int i=0;i<100000;i++) couple[i]=-1; int a,b;//接受一对夫妻 for(int i=0;i<n;i++){ scanf("%d%d",&a,&b); couple[a]=b; couple[b]=a; } scanf("%d",&m); vector<int>guest(m);//来宾数组 vector<int>isExist(100000); vector<int>havewife(100000); //表示某人的对象是否来到了排队上 for(int i=0;i<m;i++){ scanf("%d",&guest[i]); if(couple[guest[i]] !=-1)//如果非单身(我) isExist[couple[guest[i]]]=1; //我女票的男票(即我)来了,这句最神奇!!! } set<int>s; for(int i=0;i<m;i++) if(!isExist[guest[i]]) s.insert(guest[i]); printf("%d\n",s.size()); for(auto it=s.begin();it!=s.end();it++){ if(it !=s.begin()) printf(" "); printf("%05d",*it); } system("pause"); return 0; }