首页 > 学院 > 开发设计 > 正文

PAT甲级1121

2019-11-08 18:53:05
字体:
来源:转载
供稿:网友

1121. Damn Single (25)

时间限制300 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, Yue

"Damn Single (单身狗)" is the Chinese nickname for someone who is being single. You are supposed to find those who are alone in a big party, so they can be taken care of.

Input Specification:

Each input file contains one test case. For each case, the first line gives a positive integer N (<=50000), the total number of couples. Then N lines of the couples follow, each gives a couple of ID's which are 5-digit numbers (i.e. from 00000 to 99999). After the list of couples, there is a positive integer M (<=10000) followed by M ID's of the party guests. The numbers are separated by spaces. It is guaranteed that nobody is having bigamous marriage (重婚) or dangling with more than one companion.

Output Specification:

First PRint in a line the total number of lonely guests. Then in the next line, print their ID's in increasing order. The numbers must be separated by exactly 1 space, and there must be no extra space at the end of the line.

Sample Input:
311111 2222233333 4444455555 66666755555 44444 10000 88888 22222 11111 23333Sample Output:
510000 23333 44444 55555 88888
#include<cstdio>#include<set>#include<vector>#include<algorithm>using namespace std;const int maxn = 100000 + 10;int couple[maxn];int main(){	int N;	fill(couple, couple + maxn, -1);	scanf("%d", &N);	int a, b;	for (int i = 0; i < N; i++)	{		scanf("%d %d", &a, &b);		couple[a] = b;		couple[b] = a;	}	int M;	scanf("%d", &M);	set<int> single;	int t;	vector<int> v;	for (int i = 0; i < M; i++)	{		scanf("%d", &t);		v.push_back(t);	}	for (int i = 0; i < M; i++)	{		if (couple[v[i]] == -1)		{			single.insert(v[i]);		}		else		{						bool flag = false;			for (int j = 0; j < M; j++)			{				if (v[j] == couple[v[i]])				{					flag = true;					break;				}			}			if (!flag)			{				single.insert(v[i]);			}		}	}	printf("%d/n", single.size());	for (set<int>::iterator it = single.begin(); it != single.end(); it++)	{		if (it == single.begin())			printf("%05d", *it);		else			printf(" %05d", *it);	}	return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表