pat a 1121

心不动则不痛 提交于 2020-02-13 00:36:17

首先将各对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;
} 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!