"单身狗" 是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。
输入格式:
输入第一行给出一个正整数 N(<=50000),是已知夫妻 / 伴侣的对数;随后 N 行,每行给出一对夫妻 / 伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 99999),ID 间以空格分隔;之后给出一个正整数 M(<=10000),为参加派对的总人数;随后一行给出这 M 位客人的 ID,以空格分隔。题目保证无人重婚或脚踩两条船。
输出格式:
首先第一行输出落单客人的总人数;随后第二行按 ID 递增顺序列出落单的客人。ID 间用 1 个空格分隔,行的首尾不得有多余空格。
输入样例:输出样例:
- 3
- 11111 22222
- 33333 44444
- 55555 66666
- 7
- 55555 44444 10000 88888 22222 11111 23333
- 5
- 10000 23333 44444 55555 88888
- Python源码:
- 1 sum_couple = int(input())
- 2 couples = []
- 3 for i in range(sum_couple):
- 4 name = input()
- 5 a = name.split()[0]
- 6 b = name.split()[1]
- 7 c = ((a,b),(b,a))
- 8 couples.extend(c)
- 9 dcouples=dict(couples)
- 10
- 11 sum_guest = int(input())
- 12 guest = []
- 13 str = input()
- 14 for i in range(sum_guest):
- 15 guest.append(str.split()[i])
- 16
- 17 sum_single = 0
- 18 single = []
- 19 for i in range(sum_guest):
- 20 if guest[i] in dcouples:
- 21 x=dcouples.get(guest[i])
- 22 if x in guest:
- 23 sum_single-=1
- 24 else:
- 25 single.append(guest[i])
- 26 else:
- 27 single.append(guest[i])
- 28
- 29 print(len(single))
- 30 if len(single)>0:
- 31 single.sort()
- 32 print(single[0],end='')
- 33 if len(single)>1:
- 34 for i in range(1,len(single)):
- 35 print(" ",end='')
- 36 print(single[i],end='')
结果:
测试点 3 4 运行超时,未知错误
来源: