惊了,居然这样都没超时
简单题
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <string>
#include <cctype>
#include <vector>
#include <cstring>
#include <set>
using namespace std;
int n,m,cnt;
int ans[100000];
vector<int> fid;
vector<int> now(100000);
int main()
{
cin >> n;
for(int i=0; i<100000; i++){
ans[i] = -1;
now[i] = -1;
}
for(int i=0; i<n; i++){
int a,b;
cin >> a >> b;
ans[a] = b;
ans[b] = a;
}
cin >> m;
for(int i=0; i<m; i++){
int a;
cin >> a;
now[i] = a;
}
for(int i=0; i<m; i++){
if(ans[now[i]]==-1){
fid.push_back(now[i]);
cnt++;
}
else {
int flag = 0;
for(int j=0; j<m; j++){
if(ans[now[i]]==now[j]){
flag = 1;
break;
}
}
if(flag==0){
cnt++;
fid.push_back(now[i]);
}
}
}
sort(fid.begin(),fid.end());
cout << cnt << endl;
for(int i=0; i<cnt; i++){
if(i==0) printf("%05d",fid[i]);
else printf(" %05d",fid[i]);
}
return 0;
}