测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70831. 评选最佳品牌

编程题 基础

题目描述

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

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

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

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

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

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

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

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

输入格式

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

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

输出格式

评选结果。

输入输出样例

输入 #1
3 4
123
213
132
10
输出 #1
1
输入 #2
3 4
321
213
231
312
输出 #2
-2

说明/提示

## 思路

「评选最佳品牌」先读懂题意与样例,判断是模拟、枚举、贪心还是搜索/DP,再分步实现。

## 步骤

1. 仔细读输入输出与样例,确定数据范围。
2. 选择合适算法并处理边界。
3. 按格式输出,注意多组数据与精度。