QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 2048 MB مجموع النقاط: 100

#16055. 公平分配

الإحصائيات

今天是你的朋友的生日,你和其他一些人决定合资给他买一份《星际争霸II》(StarCraft II)作为礼物,因为谁会不想要这个呢?

你们同意尽可能公平地分摊费用。由于你们中有些人的预算比其他人更充裕,你们还同意没有人需要支付超过其承受能力的金额。每个人的出资额必须是 1 美分(cent)的倍数,也就是说,没有人可以支付不足 1 美分的零头。

每个人都写下自己能够出资的最大金额。在考虑了每个人的最大金额后,你们要尽可能公平地分摊礼物的总费用。这意味着,你们要最小化每个人的出资额与总费用的 $\frac{1}{n}$ 之间的最大距离(绝对差值)。如果出现平局,则最小化第二大的距离,依此类推(即按降序排列的绝对差值序列在字典序上最小)。由于最小出资单位是 1 美分,因此可能存在多种可能的费用分配方案。在这种情况下,最大出资限额较高的人支付更多。如果仍然存在歧义,则在列表中排在前面的人支付更多。

既然是你买了礼物,你的任务就是计算出每个人(包括你)需要支付多少钱。

输入格式

第一行包含一个正整数:测试用例的数量,最多为 100。接下来的每个测试用例包含:

  • 一行,包含两个整数 $p$ 和 $n$:礼物的价格(单位:美分,$1 \le p \le 1\,000\,000$)和共同出资的人数(包括你,$2 \le n \le 100$)。
  • 一行,包含 $n$ 个整数 $a_i$($1 \le a_i \le 1\,000\,000$),其中 $a_i$ 是列表中第 $i$ 个人能够出资的最大金额(单位:美分)。

输出格式

对于每个测试用例:

  • 输出一行,包含 $n$ 个整数:根据上述方案每个人需要出资的金额。如果无法按照上述规则分摊总费用,则该行应输出 IMPOSSIBLE

样例

输入样例 1

3
20 4
10 10 4 4
7 3
1 1 4
34 5
9 8 9 9 4

输出样例 1

6 6 4 4
IMPOSSIBLE
8 7 8 7 4

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.