#P874. 【基础】评选最佳品牌

【基础】评选最佳品牌

题目描述

nn 个评委投票,在 mm 个商品中评选一个最佳品牌。

评选采用多轮淘汰制,即:每轮投票,淘汰掉得票最少的候选品牌(得票并列最少的品牌一起淘汰)。

如此一轮轮淘汰下去,如果最后只剩下一个品牌当选,即告评选成功。

但如果在某轮投票中,当时未被淘汰的所有候选品牌(大于等于两个品牌)都并列得票最少,即告评选失败。

如果评选成功就输出当选品牌号。否则输出最后一轮评选时唯一选票数的相反数。

在评选流程中,每个评委的态度都可用一个序列来表示;例如当 m=5m=5 时,某评委的评选态度序列为:3,5,1,2,43,5,1,2,4,则表示该评委:优先投 33 号,当 33 号被淘汰时投 55 号,当 3355 都被淘汰时投 11,当 3,5,13,5,1 都被淘汰时投 22,仅剩 44 号时才投 44 号品牌的票。

选票的序列中可以表示弃权,用 00 来表示,例如当 m=5m=5 时,某评委的评选态度序列为:3,5,03,5,0,则表示该评委:优先投 33 号,当 33 号被淘汰时投 55 号,其它情况下不投任何品牌的票。

编程实现:请你编一个程序,模拟各轮投票的过程,得到评选结果。

输入格式

第一行:mm0<m<100<m<10,表示参加评选的品牌数)和 nn1<n<10001<n<1000,表示参加投票的评委数),之间以空格分隔。

接下来的 nn 行:每行都是长度不超 mm 的数字字符串,每个字符串表示一个评委的评选态度。

输出格式

评选结果。

样例

3 4
123
213
132
10
1
3 4
321
213
231
312
-2

提示

样例数据分析

样例 1:第一行 3 4 代表 33 个品牌,44 个评委。第一轮投票,33 个评委优先选择 11 号品牌,11 个评委选择 22 号品牌,品牌 33 得票最少,淘汰掉;第二轮投票,33 个评委优先选择 11 号品牌,11 个评委选择 22 号品牌,品牌 22 得票最少,淘汰掉;淘汰 22 号品牌后,只剩一个 11 号品牌,11 号品牌胜出,最终结果 11

样例 2:第一行 3 4 代表 33 个品牌,44 个评委。第一轮投票,22 个评委选择 22 号品牌,两个评委选择 33 号品牌,11 号得票最少,淘汰掉;第二轮投票,22 个评委选择 22 号品牌,两个评委选择 33 号品牌,由于只剩下两个品牌,且并列最少,都是 22 票,代表评选失败,需要输出最后一轮票数 22 的相反数 2-2,最终结果 2-2

数据范围

0<m<100<m<101<n<10001<n<1000

来源

蓝桥杯 模拟