CF2185H.BattleCows 2

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

农夫 John 想举办另一场 nn 头奶牛的锦标赛,其中第 ii 头奶牛的实力为 aia_i。如下过程会不断重复,直到队列中只剩下一头奶牛。

  • 队列中的第一头奶牛与第二头奶牛对决,实力较高者胜出。如果实力相同,则第一头奶牛胜出。
  • 获胜奶牛的实力会变为 x+yx + y,其中 xx 为胜者原有的实力,yy 为失者的实力。
  • 输掉的奶牛将离开队列。

然而,为了更贴近真实的 USACOW 比赛,每头奶牛最多可以作弊 kk 次。这意味着即使在比赛中输了,农夫 John 也会认为失败的奶牛赢得了比赛,此时输的奶牛的实力会变为 x+yx + yxx 是赢家的实力,yy 是输家的实力),而原本的赢家将离开队列。

如果将奶牛 ii 从原来的位置移除,并插入到位置 xx (保持其他奶牛的顺序不变),且在没有其它奶牛作弊的情况下,最后只有她能留在队列中,则称位置 xx 对于奶牛 ii 来说是一个好位置。

对于每头奶牛,计算其拥有多少个好位置。

输入格式

输入的第一行为一个整数 tt1t1041 \leq t \leq 10^4)——表示测试用例的数量。

每个测试用例的第一行为两个整数 nnkk2n2×1052 \le n \le 2 \times 10^50k<n0 \leq k < n)——表示奶牛数量和每头奶牛可以作弊的次数。

第二行为 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai1091 \le a_i \le 10^9)——表示每头奶牛的实力。

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

输出格式

对于每个测试用例,输出 nn 个整数,第 ii 个整数表示第 ii 头奶牛的好位置数量。

输入输出样例

  • 输入#1

    7
    2 0
    2 1
    2 0
    1 1
    3 1
    1 1 3
    3 0
    2 1 1
    3 1
    1 3 1
    4 1
    1 2 1 3
    7 2
    1 3 3 17 39 3 12

    输出#1

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

说明/提示

对于第一个测试用例,无论奶牛 2 站在哪个位置,她都会输,而奶牛 1 无论站在哪个位置都会赢。

对于第二个测试用例,奶牛 1 和奶牛 2 都只在位置 1 时能获胜,在位置 2 都无法获胜,所以每头奶牛都有 1 个好位置。

对于第三个测试用例,考察奶牛 1:

  • 如果奶牛 1 在第 1 个位置,她会赢得首场比赛,实力变为 2,并可以作弊赢得第二场比赛。
  • 如果奶牛 1 在第 2 个位置,她需要作弊赢得首场比赛,但之后会输掉第二场。
  • 如果奶牛 1 在第 3 个位置,她需要作弊赢得首场比赛,随后比赛结束,不再有对决。
首页