#include<stdio.h>
int main()
{
int lover[100001]={-1};
bool come[100001]={0};
int single[100001]={0};
int N=0,M=0,a=0,b=0,sum=0,come_max=0,come_min = 100000,j=0,flag=0,i=0;
for(i=0; i<100001; i++)
lover[i] = -1;
scanf("%d",&N);
i=0;
while(i<N) //保存夫妻信息
{
scanf("%d%d",&a,&b);
lover[a] = b;
lover[b] = a;
i++;
}
scanf("%d",&M);
j=0;
while(j<M) //记录谁来了,及最小编号和最大编号
{
scanf("%d",&a);
if(a>=come_max)
come_max = a;
if(a<=come_min)
come_min = a;
come[a] = 1;
j++;
}
for(j=come_min; j<=come_max; j++)
{
if(come[j]==1)
{
if((lover[j]==-1)) //没有配偶肯定单身,配偶数组已经初始化为-1
{
single[sum] = j;
sum++;
}
else if(come[lover[j]]==0) //有配偶但是配偶没有来,保存单身信息
{
single[sum] = j;
sum++;
}
}
}
printf("%d\n",sum);
for(j=0; j<sum; j++)
{
if(flag==1)
{
printf(" %05d",single[j]);
}
else
{
flag = 1;
printf("%05d",single[j]);
}
}
return 0;
}
1065. 单身狗(25)
最新推荐文章于 2018-07-31 09:21:53 发布