首先将各对couple的关系存入map映射中,然后用一个exsit数组来记录一下都有谁到场了,同时把到场的人放进set容器中。
然后对set进行一次遍历,删除那些他的对象到场的人,最后输出就好,set已经自动帮咱们排了序
#include <iostream>
#include <unordered_map>
#include <set>
using namespace std;
const int maxv=100010;
int exsit[maxv]={0};
int main(){
int n;
cin>>n;
unordered_map<int,int> mp;
set<int> se;
for(int i=0;i<n;i++){
int id1,id2;
cin>>id1>>id2;
mp[id1]=id2;
mp[id2]=id1;
}
int k;
cin>>k;
for(int i=0;i<k;i++){
int id;
cin>>id;
exsit[id]=1;
se.insert(id);
}
for(auto it=se.begin();it!=se.end();it++){
if(exsit[mp[*it]]==1){
se.erase(it);
}
}
printf("%d\n",se.size());
for(auto it=se.begin();it!=se.end();it++){
if(it!=se.begin()){
printf(" ");
}
printf("%05d",*it);
}
return 0;
}
来源:CSDN
作者:blxl313
链接:https://blog.csdn.net/blxl313/article/details/104280851