PAT (Advanced Level) Practise 1121 Damn Single (25)
2017-05-15 23:27
543 查看
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:
3 11111 22222 33333 44444 55555 66666 7 55555 44444 10000 88888 22222 11111 23333
Sample Output:
5 10000 23333 44444 55555 88888
题意:告诉你有n对夫妻,问在一个party上有几个单身狗(伴侣不在也算),并输出
解题思路:直接标记一下就好
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <map> #include <set> #include <stack> #include <queue> #include <vector> #include <bitset> #include <functional> using namespace std; #define LL long long const int INF = 0x3f3f3f3f; int n,m; int ans[100060]; int a[100060],visit[1000060],b[1000060]; int main() { while (~scanf("%d", &n)) { memset(visit, 0, sizeof visit); memset(b, -1, sizeof b); int x, y; for (int i = 1; i <= n; i++) { scanf("%d%d", &x, &y); b[x] = y, b[y] = x; } int res = 0; scanf("%d", &m); for (int i = 1; i <= m; i++) { scanf("%d", &a[i]); visit[a[i]] = 1; } for (int i = 1; i <= m; i++) if (!visit[b[a[i]]] || b[a[i]] == -1) ans[res++] = a[i]; sort(ans, ans + res); printf("%d\n", res); if (res == 0) continue; printf("%05d", ans[0]); for (int i = 1; i < res; i++) printf(" %05d", ans[i]); printf("\n"); } return 0; }
相关文章推荐
- PAT (Advanced Level) Practise 1121 Damn Single (25)
- PAT (Advanced Level)1121. Damn Single (25)第二个测 4000 试点过不去,求助
- 【PAT】【Advanced Level】1121. Damn Single (25)
- 1016. Phone Bills (25)——PAT (Advanced Level) Practise
- PAT (Advanced Level) Practise 1020. Tree Traversals (25)
- 1070. Mooncake (25)【贪心】——PAT (Advanced Level) Practise
- 1074. Reversing Linked List (25)【链表翻转】——PAT (Advanced Level) Practise
- PAT (Advanced Level) Practise 1025. PAT Ranking (25)
- 1017. Queueing at Bank (25) @ PAT (Advanced Level) Practise
- PAT (Advanced Level) Practise 1006 Sign In and Sign Out (25)
- PAT (Advanced Level) Practise 1082 Read Number in Chinese (25)
- PAT (Advanced Level) Practise 1025 PAT Ranking (25)
- PAT (Advanced Level) Practise 1075 PAT Judge (25)
- PAT (Advanced Level) Practise 1109 Group Photo (25)
- PAT (Advanced Level) Practise 1130 Infix Expression (25)
- PAT (Advanced Level) Practise - 1009. Product of Polynomials (25)
- PAT (Advanced Level) Practise 1013. Battle Over Cities (25)
- 1043. Is It a Binary Search Tree (25)【二叉树】——PAT (Advanced Level) Practise
- PAT (Advanced Level) Practise 1021. Deepest Root (25)
- 1071. Speech Patterns (25)【字符串操作】——PAT (Advanced Level) Practise