CF1978D.Elections

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

伯兰德正在举行选举。有 nn 位候选人参加选举,编号从 11 到 nn。第 ii 位候选人有 aia_i 名支持者会投票给他。此外,还有 cc 名尚未决定支持哪位候选人的“未决定者”。未决定者会投票给编号最小的候选人。

获得最多票数的候选人将赢得选举,如果有多位候选人获得相同的最高票数,则编号最小的候选人获胜。

你觉得这场选举太无聊且可预测,于是你决定排除掉一些候选人。如果你不允许编号为 ii 的候选人参加选举,那么他的所有 aia_i 名支持者都会变成未决定者,并会投票给编号最小的候选人。

你很好奇,对于每个 ii 从 11 到 nn,最少需要排除多少名候选人,才能让编号为 ii 的候选人赢得选举。

输入格式

每个测试包含多组测试用例。第一行包含一个整数 tt(1≤t≤2⋅1041 \leq t \leq 2 \cdot 10^4),表示测试用例的数量。接下来是每组测试用例的描述。

每组测试用例的第一行包含两个整数 nn 和 cc(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5,0≤c≤1090 \le c \le 10^9),分别表示候选人数和未决定者人数。

每组测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1090 \le a_i \le 10^9),表示每位候选人的支持者人数。

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每组测试用例,输出 nn 个整数,第 ii 个数表示让编号为 ii 的候选人赢得选举所需排除的最少候选人数。

输入输出样例

  • 输入#1

    5
    3 1
    2 0 3
    2 3
    0 10
    5 3
    5 4 3 2 1
    4 5
    3 10 7 1
    6 0
    2 2 2 3 3 3

    输出#1

    0 1 2
    1 0
    0 1 2 3 4
    1 0 2 3
    1 1 2 0 4 5

说明/提示

在第一个测试用例中:

  • 如果所有候选人都允许参选,编号为 11 的候选人将获得 33 票(11 名未决定者会投票给他),编号为 22 的候选人获得 00 票,编号为 33 的候选人获得 33 票。因此,编号为 11 的候选人获胜(他与编号为 33 的候选人票数相同,但编号更小),所以他的答案是 00。
  • 如果不允许编号为 11 的候选人参选,他的 22 名支持者会变成未决定者。此时编号为 22 的候选人获得 33 票(33 名未决定者会投票给他),编号为 33 的候选人获得 33 票。因此,编号为 22 的候选人获胜(他与编号为 33 的候选人票数相同,但编号更小),所以他的答案是 11。
  • 如果不允许编号为 11 和 22 的候选人参选,编号为 33 的候选人获胜,所以他的答案是 22。

在第二个测试用例中,只要不允许编号为 22 的候选人参选,编号为 11 的候选人就能获胜。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页