#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