【PAT甲级】1121 Damn Single (25分)

题意:

输入一个正整数N(<=50000),接着输入N对整数,表示这一对为一对。输入一个正整数Q(<=10000),接着输入Q个整数,输出其中不成对或者另一半未出现在Q个数中的数的个数,并从小到大输出。

AAAAAccepted code:

 1 #define HAVE_STRUCT_TIMESPEC
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 vector<int>v;
 5 int vis[100007];
 6 int a[10007];
 7 map<int,int>mp;
 8 int main(){
 9     //ios::sync_with_stdio(false);
10     //cin.tie(NULL);
11     //cout.tie(NULL);
12     int n;
13     scanf("%d",&n);
14     for(int i=1;i<=n;++i){
15         int x,y;
16         scanf("%d%d",&x,&y);
17         vis[x]=2;
18         vis[y]=2;
19         mp[x]=y;
20         mp[y]=x;
21     }
22     int q;
23     scanf("%d",&q);
24     for(int i=1;i<=q;++i){
25         scanf("%d",&a[i]);
26         --vis[a[i]];
27         --vis[mp[a[i]]];
28     }
29     for(int i=1;i<=q;++i)
30         if(vis[a[i]]!=0)
31             v.emplace_back(a[i]);
32     sort(v.begin(),v.end());
33     printf("%d\n",v.size());
34     for(int i=0;i<v.size();++i){
35         if(i==0)
36             printf("%05d",v[i]);
37         else
38             printf(" %05d",v[i]);
39     }
40     return 0;
41 }

 

posted @ 2020-02-28 22:23  sewage  阅读(132)  评论(0编辑  收藏  举报