#P13139. [GCJ 2018 #1B] Rounding Error

[GCJ 2018 #1B] Rounding Error

Description

为了最终解决“哪种编程语言最好”这一由来已久的问题,你打算询问总共 NN 个人,让他们告诉你自己最喜欢的语言。这是一个开放式问题:每个人都可以自由选择任何一种语言,世界上的语言数量是无限的。

有些人已经作出了回应,你已经将这些信息整理成了一个计数列表。例如,1 2 表示你目前已经询问了 3 个人,其中一人选择了一种特定的语言,另外两人选择了另一种语言。

你打算将结果以表格的形式公布,列出每种语言以及选择它的人所占的百分比。你会将每个百分比四舍五入到最接近的整数,如果小数部分大于等于 0.5,则向上取整。例如,12.5%12.5\% 会四舍五入为 13%13\%99.5%99.5\% 会四舍五入为 100%100\%12.4999%12.4999\% 会四舍五入为 12%12\%

在这种调查中,有时四舍五入后的百分比之和并不一定正好等于 100。请问,在你完成对剩余人员的调查后,四舍五入后的百分比之和最大可能是多少?

Input Format

输入的第一行是测试用例的数量 TT。接下来有 TT 组测试数据,每组包含两行。第一行包含两个整数 NNLL,分别表示调查的总人数,以及已经有回应的不同语言的数量。第二行包含 LL 个整数 CiC_i,第 ii 个数表示有 CiC_i 个人选择了第 ii 种已出现的语言。

Output Format

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 1 开始),yy 是四舍五入后的百分比之和的最大可能值。

4
3 2
1 1
10 3
1 3 2
6 2
3 1
9 8
1 1 1 1 1 1 1 1
Case #1: 100
Case #2: 100
Case #3: 101
Case #4: 99

Hint

样例解释

在样例 1 中,已有两人作答,且选择了不同的语言。还有一人未作答。如果这人选择第三种语言,则四舍五入后的百分比之和为 33+33+33=9933+33+33=99。但如果这人选择了已出现的某种语言,则四舍五入后的百分比之和为 67+33=10067+33=100。因此最大可能为 100。

在样例 2 中,无论剩下的四人如何选择,各语言的百分比总是 10 的整数倍,无需四舍五入,总和始终为 100。

在样例 3 中,一种最优情况是:剩下的两人各自选择一种未出现的语言,则四舍五入后的百分比之和为 50+17+17+17=10150+17+17+17=101

在样例 4 中,无论剩下的一人选择已出现的语言与否,四舍五入后的百分比之和都为 99。

数据范围

  • 1T1001 \leqslant T \leqslant 100
  • 1L<N1 \leqslant L < N
  • 对所有 ii1Ci1 \leqslant C_i
  • 所有 CiC_i 之和 <N< N

测试点 1(5 分,可见)

  • 2N252 \leqslant N \leqslant 25

测试点 2(9 分,可见)

  • 2N2502 \leqslant N \leqslant 250

测试点 3(11 分,隐藏)

  • 2N1052 \leqslant N \leqslant 10^{5}

由 ChatGPT 4.1 翻译