D. How to Win the Election

    传统题 2000ms 256MiB

How to Win the Election

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

现在正在举行一场选举,有 NN 位候选人,编号为 1,2,,N1, 2, \ldots, N。目前已经有 KK 张选票,其中一些已经被计入。

到目前为止,第 ii 位候选人已经获得了 AiA_i 票。

在所有选票被计完后,如果某位候选人的得票数比他们多的候选人数少于 MM,那么该候选人将被当选。可能会有多位候选人同时当选。

对于每个候选人,求出他们需要从剩余的选票中获得的最少票数,以确保无论其他候选人获得多少票,他们都能当选。

具体来说,对于每个 i=1,2,,Ni = 1, 2, \ldots, N,解决以下问题:

确定是否存在一个非负整数 XX,其不超过 Ki=1NAiK - \displaystyle{\sum_{i=1}^{N}} A_i,并满足以下条件。如果存在,找出满足条件的最小 XX

  • 如果候选人 ii 获得了 XX 张额外选票,那么候选人 ii 将始终当选。

输入格式

  • 第一行包含三个整数 NNMMKK
  • 第二行包含 NN 个整数,分别是 A1,A2,,ANA_1, A_2, \ldots, A_N,表示每个候选人当前已经获得的票数。

输出格式

CiC_i 为候选人 ii 从剩余选票中需要的最少额外票数,以保证无论其他候选人获得多少票,他们都能当选。输出 C1,C2,,CNC_1, C_2, \ldots, C_N

如果候选人 ii 已经确保当选,则 Ci=0C_i = 0。如果候选人 ii 无法在任何情况下确保当选,则 Ci=1C_i = -1

数据范围

  • 1MN2×1051 \leq M \leq N \leq 2 \times 10^5
  • 1K10121 \leq K \leq 10^{12}
  • 0Ai10120 \leq A_i \leq 10^{12}
  • i=1NAiK\displaystyle{\sum_{i=1}^{N}} A_i \leq K

样例

5 2 16
3 1 4 1 5
2 -1 1 -1 0
12 1 570
81 62 17 5 5 86 15 7 79 26 6 28
79 89 111 117 117 74 112 116 80 107 117 106

样例解释

  • 样例 1:已知总共有 1414 票已经开票,剩下的选票为 22 张。对于每位候选人,需要计算他们能够获得的最小额外选票数以确保当选。
    • 对于候选人 11,他需要额外获得 22 票才能确保当选,因为即使他获得 11 票,也不能确保他超过至少 22 个候选人。
    • 对于候选人 22,无论剩下的 22 张选票如何分配,他都无法确保当选,因此答案为 1-1
    • 对于候选人 33,他需要至少 11 张额外选票才能确保当选。
    • 对于候选人 44,他无论如何也无法确保当选,因此答案为 1-1
    • 对于候选人 55,他已经得到了足够的票数,因此答案为 00

[Engeeker周赛 Div1] 20241129

未参加
状态
已结束
规则
乐多
题目
4
开始于
2024-11-29 0:00
结束于
2024-12-2 0:00
持续时间
1.5 小时
主持人
参赛人数
1