1121 Damn Single (25分)

it2025-04-21  1

1121 Damn Single (25分)

“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 (≤ 50,000), 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 (≤ 10,000) 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:
3 11111 22222 33333 44444 55555 66666 7 55555 44444 10000 88888 22222 11111 23333
Sample Output:
5 10000 23333 44444 55555 88888
题意:

先给出部分对夫妻的编号,然后再给出一部分人的编号,然后判断给出的一部分人中单独的人的人数(编号在给出的成对夫妻的编号中找不到或者能找到但是他的丈夫或妻子不在后面给出的名单中)并按编号从小到大输出;

分析:

用map存储给出的成对夫妻的编号数据,用一个set存储后面给出的编号数据,然后遍历该set将符合条件的人(单身狗)的编号存入另一个set里最后输出;

题解:
#include <iostream> #include <vector> #include <map> #include <set> using namespace std; map<int, int> mp; set<int> s1, s2; int main() { int n,m; scanf("%d", &n); for (int i = 0; i < n; i++) { int temp1, temp2; scanf("%d%d", &temp1, &temp2); mp[temp1] = temp2; mp[temp2] = temp1; } scanf("%d", &m); for (int i = 0; i < m; i++) { int temp; scanf("%d", &temp); s1.insert(temp); } for (auto it = s1.begin(); it != s1.end(); it++) { if (mp.find(*it) == mp.end() || (mp.find(*it) != mp.end() && s1.find(mp[*it]) == s1.end())) s2.insert(*it); } printf("%d\n", s2.size()); for (auto it = s2.begin(); it != s2.end(); it++) { if (it != s2.begin()) printf(" "); printf("%05d", *it); } //printf("\n"); //如果输出这行测试点1格式错误 return 0; }
最新回复(0)