CF1904B Collecting Game
题目描述
给定一个长度为 $n$ 的正整数数组 $a$ 和一个分数。如果你的分数大于等于 $a_i$,那么你可以将分数增加 $a_i$ 并从数组中移除 $a_i$。
对于每个下标 $i$,输出在移除 $a_i$ 并将你的分数设为 $a_i$ 后,你最多还能移除多少个额外的数组元素。注意,移除 $a_i$ 的操作不计入答案。
输入格式
每组测试数据包含多个测试用例。第一行包含一个整数 $t$($1 \leq t \leq 5000$)——表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^5$)——表示数组的长度。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$)——表示数组的元素。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,输出 $n$ 个整数,第 $i$ 个整数表示如果移除 $a_i$ 并将分数设为 $a_i$ 后,最多还能移除多少个额外的数组元素。
说明/提示
在第一个测试用例中,答案如下:
如果我们从 $i=4$ 开始,初始分数为 $a_4=4$,数组 $a=[20,5,1,2]$。我们可以按如下顺序移除 $3$ 个额外元素:
1. 由于 $4 \ge 1$,可以移除 $1$,分数变为 $5$。此时 $a=[20,5,2]$。
2. 由于 $5 \ge 5$,可以移除 $5$,分数变为 $10$。此时 $a=[20,2]$。
3. 由于 $10 \ge 2$,可以移除 $2$,分数变为 $12$。此时 $a=[20]$。
如果从 $i=1$ 开始,可以移除数组中所有剩余元素,因此答案为 $4$。
如果从 $i=2$ 开始,可以按顺序移除 $3$ 个额外元素:$1$、$4$、$2$。
如果从 $i=3$ 开始,无法移除任何额外元素。
如果从 $i=5$ 开始,可以移除 $1$ 个额外元素:$1$。
由 ChatGPT 4.1 翻译