CF1519C Berland Regional

题目描述

Polycarp 是 Berland ICPC 区域赛的组织者。Berland 有 $n$ 所大学,编号从 $1$ 到 $n$。Polycarp 了解该地区所有的竞赛程序员。有 $n$ 名学生:第 $i$ 名学生就读于大学 $u_i$,编程能力为 $s_i$。 Polycarp 现在需要决定比赛规则,特别是队伍的人数。 Polycarp 知道,如果他选择队伍人数为某个整数 $k$,那么每所大学会将本校编程能力最高的 $k$ 名学生组成第一队,接下来能力最高的 $k$ 名学生组成第二队,依此类推。如果剩下的学生不足 $k$ 人,则无法再组队。注意,可能有的大学无法组出任何队伍。 该地区的“实力”定义为所有已组队成员的编程能力之和。如果没有任何队伍,则实力为 $0$。 请你帮助 Polycarp 计算,对于每个 $k$ 从 $1$ 到 $n$,该地区的实力分别是多少。

输入格式

第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示大学和学生的数量。 第二行包含 $n$ 个整数 $u_1, u_2, \dots, u_n$($1 \le u_i \le n$),表示第 $i$ 名学生所在的大学编号。 第三行包含 $n$ 个整数 $s_1, s_2, \dots, s_n$($1 \le s_i \le 10^9$),表示第 $i$ 名学生的编程能力。 所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出 $n$ 个整数:对于每个队伍人数 $k$,该地区的实力(即所有已组队成员的编程能力之和)。

说明/提示

在第一个测试用例中,每个 $k$ 时各大学的组队情况如下: - $k=1$: - 大学 $1$:$[6], [5], [5], [3]$; - 大学 $2$:$[8], [1], [1]$; - $k=2$: - 大学 $1$:$[6, 5], [5, 3]$; - 大学 $2$:$[8, 1]$; - $k=3$: - 大学 $1$:$[6, 5, 5]$; - 大学 $2$:$[8, 1, 1]$; - $k=4$: - 大学 $1$:$[6, 5, 5, 3]$; 由 ChatGPT 4.1 翻译