1121 Damn Single

"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

 

题意:

  找出查询序列中的单身人数。

思路:

  用set将party上所有的人都存储起来,然后查找是否有couples在set中如果有的话则将其删除。

Code:

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int main() {
 6     int n, m;
 7     cin >> n;
 8     vector<pair<int, int> > v;
 9     int p1, p2;
10     for (int i = 0; i < n; ++i) {
11         cin >> p1 >> p2;
12         v.push_back({p1, p2});
13     }
14     cin >> m;
15     int p;
16     set<int> s;
17     while (m--) {
18         cin >> p;
19         s.insert(p);
20     }
21     for (int i = 0; i < n; ++i) {
22         auto it1 = s.find(v[i].first);
23         auto it2 = s.find(v[i].second);
24         if (it1 != s.end() && it2 != s.end()) {
25             s.erase(it1);
26             s.erase(it2);
27         }
28     }
29     cout << s.size() << endl;
30     bool isFirst = true;
31     for (int i : s) {
32         if (isFirst) {
33             printf("%04d", i);
34             isFirst = false;
35         } else {
36             printf(" %04d", i);
37         }
38     }
39     return 0;
40 }

 

posted @ 2020-04-23 17:34  Veritas_des_Liberty  阅读(272)  评论(0)    收藏  举报