QOJ.ac

QOJ

时间限制: 6 s 内存限制: 1024 MB 总分: 21

#5887. 数字中的安全

统计

有 $N$ 名选手参加一档真人秀节目。每名选手都会获得评委给出的分数,并收到观众的投票。评委给出的分数与观众投票的比例将按以下方式合并,形成选手的最终得分

设 $X$ 为所有选手评委得分的总和。假设某位选手从评委处获得了 $J$ 分,并且她获得了观众投票中 $Y$ 的份额($0 \le Y \le 1$,例如 $Y$ 可以是 $0.3$)。那么该选手的最终得分为 $J + X \times Y$。注意,所有选手获得的观众投票份额之和必须为 $1$。

最终得分最低的选手将被淘汰。

给定每位选手从评委处获得的分数,你的任务是为每位选手计算出:为了保证该选手不被淘汰,无论其余观众投票如何分配,他/她必须获得的观众投票的最小百分比。

如果最低得分由多名选手共同拥有,则没有选手会被淘汰。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 行,每行代表一个测试用例。每行以一个整数 $N$ 开头,表示选手人数,随后是一个空格,接着是 $N$ 个整数 $s_0, s_1, \dots, s_{N-1}$,以空格分隔。整数 $s_i$ 是评委分配给选手 $i$ 的分数。

输出格式

对于每个测试用例,输出一行,格式为 "Case #x: ",后跟 $N$ 个实数 $m_i$。其中 $x$ 是测试用例编号(从 $1$ 开始)。$m_i$ 是选手 $i$ 为了确保不被淘汰所必须获得的最小观众投票百分比。

如果答案与正确答案的绝对误差或相对误差在 $10^{-5}$ 以内,则视为正确。

数据范围

$0 \le s_i \le 100$。 存在某个 $i$ 使得 $s_i > 0$。这意味着至少有一名选手的评委得分大于 $0$。

子任务 1

$1 \le T \le 20$。 $2 \le N \le 10$。

子任务 2

$1 \le T \le 50$。 $2 \le N \le 200$。

样例

样例输入 1

4
2 20 10
2 10 0
4 25 25 25 25
3 24 30 21

样例输出 1

Case #1: 33.333333 66.666667
Case #2: 0.000000 100.000000
Case #3: 25.0 25.0 25.0 25.0
Case #4: 34.666667 26.666667 38.666667

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.