PAT 甲级 1121 Damn Single (25 分)

思路:

1.以map映射存储每个人的伴侣;
2.用set存储客人,会自动排序,然后依次遍历,若遇到某人的伴侣也在set中,移除两人;
3.最后输出set 的大小和里面的客人id,注意id要用%05d输出;

代码:

#include<iostream>
#include<map>
#include<set>
using namespace std;
int main(){
	int n,m;
	map<int,int> mp;
	set<int> st;
	cin>>n;
	for(int i=0;i<n;i++){
		int a,b;
		cin>>a>>b;
		mp[a]=b;
		mp[b]=a;
	}
	cin>>m;
	for(int i=0;i<m;i++){
		int id;
		cin>>id;
		st.insert(id);
	}
	for(auto e:st)
		if(st.find(mp[e])!=st.end()){
			st.erase(mp[e]);
			st.erase(e);
		}
	printf("%d
",st.size());
	for(set<int>::iterator it=st.begin();it!=st.end();it++)
		printf(it==st.begin()?"%05d":" %05d",*it);
	return 0;
}
原文地址:https://www.cnblogs.com/yuhan-blog/p/12309041.html