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
題意:找出誰是“單身狗”。。。先輸入各對CP,然後再輸入參加party的人員,統計輸入的這些人裏哪些是沒有CP一起來的,升序輸出。
分析:水題。。我思路是用一個數組couple,初始化為-1(因為人的編號為00000-99999),作用是來存儲某人的CP,如11111的CP是22222,那麽couple[11111]=22222,couple[22222]=11111。最後因為要格式輸出,不知道叠代器怎麽格式輸出。。就先把結果存到了vector中,具體見代碼
1 /**
2 * Copyright(c)
3 * All rights reserved.
4 * Author : Mered1th
5 * Date : 2019-02-27-21.51.47
6 * Description : A1121
7 */
8 #include<cstdio>
9 #include<cstring>
10 #include<iostream>
11 #include<cmath>
12 #include<algorithm>
13 #include<string>
14 #include<unordered_set>
15 #include<map>
16 #include<vector>
17 #include<set>
18 using namespace std;
19 const int maxn=100010;
20 int couple[maxn]={-1};
21 int main(){
22 #ifdef ONLINE_JUDGE
23 #else
24 freopen("1.txt", "r", stdin);
25 #endif
26 int n,m,u,v,t;
27 scanf("%d",&n);
28 for(int i=0;i<n;i++){
29 scanf("%d%d",&u,&v);
30 couple[u]=v;
31 couple[v]=u;
32 }
33 scanf("%d",&m);
34 vector<int> tem;
35 for(int i=0;i<m;i++){
36 scanf("%d",&t);
37 tem.push_back(t);
38 }
39 set<int> ans;
40 for(int i=0;i<m;i++){
41 int coup=couple[tem[i]];
42 if(coup==-1) ans.insert(tem[i]);
43 else{
44 if(find(tem.begin(),tem.end(),coup)==tem.end()){
45 ans.insert(tem[i]);
46 }
47 }
48 }
49 cout<<ans.size()<<endl;
50 vector<int> res;
51 for(auto it=ans.begin();it!=ans.end();it++){
52 res.push_back(*it);
53 }
54 for(int i=0;i<res.size();i++){
55 printf("%05d",res[i]);
56 if(i!=res.size()-1) printf(" ");
57 }
58 return 0;
59 }
1121 Damn Single (25 分)