1065. 单身狗(25)

来源:互联网 发布:北通 知乎 编辑:程序博客网 时间:2024/04/30 14:05

“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。

输入格式:

输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数;随后N行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(<=10000),为参加派对的总人数;随后一行给出这M位客人的ID,以空格分隔。题目保证无人重婚或脚踩两条船。

输出格式:

首先第一行输出落单客人的总人数;随后第二行按ID递增顺序列出落单的客人。ID间用1个空格分隔,行的首尾不得有多余空格。

输入样例:
311111 2222233333 4444455555 66666755555 44444 10000 88888 22222 11111 23333
输出样例:
510000 23333 44444 55555 88888注意要输出五位数字比如00001而不是1
#include<cstdio>#include<algorithm>using namespace std;int ans[100000];int cache[10000];int person[100000]={0};int p=0;int main(){    int N;    scanf("%d",&N);    fill(ans,ans+100000,-1);    for(int i=0;i<N;i++){        int a,b;        scanf("%d%d",&a,&b);        ans[a]=b;        ans[b]=a;    }    int M;    scanf("%d",&M);    for(int i=0;i<M;i++){        int temp;        scanf("%d",&temp);        person[temp]=1;    }    for(int i=0;i<100000;i++){        if(person[i]){            if(ans[i]==-1||person[ans[i]]==0)                cache[p++]=i;        }    }    printf("%d\n",p);    for(int i=0;i<p;i++){        if(i==0)printf("%05d",cache[i]);        else printf(" %05d",cache[i]);    }    if(p!=0)    printf("\n");}

 
原创粉丝点击