/ 基础 / 题库 /

D’HONDT

D’HONDT

时间限制:1秒  内存限制:256M


题目背景

\(12\) 月初,某国举行议会选举。这个国家被分为十个选区,每个选区要选出 \(14\) 名议会代表。每个选民都投票支持少数政党中的一个。投票后,选区代表用 D'Hondt 分配原理选出。

题目描述

某一个选区里面有 \(x\) 个选民,并有 \(n\) 个政党参加议会选举。运用 D'Hondt 分配原理,我们先选出选票**至少占选民总数的 \(5\%\)** 的政党。然后对于某一个政党的票数分别除以 \(1,2,\dots,14\),并将 \(14\) 个除得的**实数**作为这个政党的分数分配给这个政党。然后,我们从拥有最高得分的政党中选出第一个代表,拥有第二高得分的政党中选出第二个代表,以此类推。注意,在本题中,我们默认**选举代表的方式总是唯一的,即所有分数都不相同。**

现在,请你编写一个程序,给定选民的总数和每个政党得到的选票个数。请求出得到的选票至少占选民总数的 \(5\%\) 的所有政党中,每一个政党能够选出的代表数。

输入格式

输入共 \(n+2\) 行。

第一行一个整数 \(x\),表示选民的个数。

第二行一个整数 \(n\),表示参加议会选举的政党数。

随后 \(n\) 行,每行一个大写字母和一个整数 \(g\),分别表示政党的标识符和该政党拥有的选票数。

输出格式

输出若干行,每行一个大写字母和一个整数,分别代表一个得到的选票至少占选民总数的 \(5\%\) 的政党的标识符和能够选出的代表数。

得到的选票至少占选民总数的 \(5\%\) 的所有政党按照标识符在字母表中的位置升序排列。

输入输出样例 #1

输入 #1

235217
3
A 107382
C 18059
B 43265

输出 #1

A 9
B 4
C 1

输入输出样例 #2

输入 #2

245143
4
F 14845
A 104516
B 52652
C 14161

输出 #2

A 8
B 4
C 1
F 1

输入输出样例 #3

输入 #3

206278
5
D 44687
A 68188
C 7008
B 48377
G 9665

输出 #3

A 6
B 4
D 4

说明/提示

【数据范围】

对于 \(30\%\) 的数据,保证输入中所有政党拥有的票数都至少占选民总数的 \(5\%\)。

对于所有数据,\(1\leqslant x\leqslant 2.5\times 10^6\),\(0\leqslant n\leqslant 10\),\(1\leqslant g\leqslant 2.5\times 10^5\)。

信息

ID
1040
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
被复制
1
上传者