QOJ.ac

QOJ

时间限制: 2.0 s 内存限制: 256 MB 总分: 100

#12759. 选票分析装置

统计

Flatland 选举委员会正在筹备总统选举。为了最大限度地减少计票过程中的人为因素,他们决定开发一种自动选票分析设备(Ballot Analyzing Device,简称 BAD)。

共有 $n$ 名候选人参选总统。选票上为每位候选人设有一个方格。选民必须且只能在其中一个方格内打钩。如果没有任何方格被标记,或者有两个及以上的方格被标记,则该选票无效。每位选民将选票放入 BAD 的专用扫描仪中。扫描仪会分析选票上的标记,并生成一个包含 $n$ 个字符的特殊投票字符串:用 'X' 表示已标记的方格,用 '.' 表示未标记的方格。现在需要对这些投票字符串进行分析以生成报告。你的任务是为 BAD 开发一个报告生成器。

给定所有选票的投票字符串,你的程序必须打印投票报告。报告中的候选人必须按得票数从多到少排列。如果两名候选人的得票数相同,则他们必须保持在选票上的原始顺序。对于每位候选人,计算其得票百分比(如果候选人获得了 $p$ 张选票,则百分比结果为 $100p/m$)。报告的最后一行必须标明无效选票的百分比。

输入格式

第一行包含两个整数 $n$ 和 $m$ —— 候选人数和选票数($2 \le n \le 10$;$1 \le m \le 1000$)。接下来的 $n$ 行包含候选人的姓氏。每个名字是一个长度不超过 100 个英文字母的字符串。没有候选人被命名为 “Invalid”。

随后有 $m$ 行,每一行包含一个投票字符串。

输出格式

打印 $n+1$ 行。首先打印候选人的百分比结果。对于每位候选人,打印其姓氏,后跟一个空格,然后是其百分比结果和一个百分号 '%'。最后一行必须标明无效选票的百分比:单词 “Invalid”,后跟一个空格,无效选票的百分比和一个百分号。

将所有数字四舍五入到小数点后恰好两位。如果数字恰好处于两个可表示数字的中间,则输出较大的一个(例如,对于 12.345,输出 “12.35”)。

样例

输入 1

4 7
Loudy
Apples
Dogman
Miller
.X..
X...
....
..X.
..XX
..X.
..X.

输出 1

Dogman 42.86%
Loudy 14.29%
Apples 14.29%
Miller 0.00%
Invalid 28.57%

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.