#P1585. Helping Florida

Helping Florida

本题没有可用的提交语言。

描述

佛罗里达州总统选举的困难众所周知,但一个鲜为人知的问题是该州众议院委员会主席的选举。该州采用的选举程序是决胜选举,每位委员会成员提交一份选票,列出其他成员的排名,以角逐主席职位。遗憾的是,负责统计选票的人总是搞不清楚哪些选票仍有可计算的选票,因此没有人相信结果。

每位委员会成员提交一份选票。每张选票都包含一份排名列表。计票工作分轮进行。第一轮,每张选票上的第一票将被计算。如果任何候选人获得超过半数的选票,则该候选人获胜。

每轮结束后,得票最少的候选人(或如果出现票数相同,则淘汰其他候选人)将被淘汰。然后重新统计选票,每张选票中剩余候选人的最高票将被计算。如果一张选票上所有得票候选人均被淘汰,则该选票将被视为“无效”,在计算多数票时将不再计入总票数。

该过程将重复进行,直到选出唯一获胜者,或剩余候选人之间出现平局。选举规则保证选票数平局或出现获胜者。

输入

对于每个数据集:

第一行 < 候选人 > < 选票 >

获得选票的候选人数量

选票数量,b

b 行 每张选票一行。对于每张选票,候选人的姓名按优先顺序列出。候选人姓名是一个不含空格的字符串。一张选票可能不会包含所有候选人的选票。一张选票上不会重复出现任何候选人。

在最后一个数据集之后,一行

0 0

表示输入结束。

输出

每个数据集输出一行:

获胜者:

< 候选人 > 获胜

平局:

< 候选人 > 和 < 候选人 > 平局 [ 和 < 候选人 > [...]]

每个候选人姓名之间用“and”分隔。可以按升序打印。

3 9
Buchanan Bush
Buchanan Bush
Buchanan Gore
Gore Bush
Gore Bush
Gore Bush
Gore Bush
Bush Buchanan
Bush Buchanan
0 0
Buchanan won