#CF2123E. MEX 计数

MEX 计数

E. MEX 计数
时间限制:3 秒
内存限制:256 兆字节

定义一个数组的 MEX(最小排除值)为不在数组中的最小非负整数。例如:

  • MEX([2,2,1])=0\operatorname{MEX}([2,2,1]) = 0,因为 00 不在数组中。
  • MEX([3,1,0,1])=2\operatorname{MEX}([3,1,0,1]) = 2,因为 0011 在数组中,但 22 不在。
  • MEX([0,3,1,2])=4\operatorname{MEX}([0,3,1,2]) = 4,因为 0,1,2,30,1,2,3 都在数组中,但 44 不在。

给定一个大小为 nn 的非负整数数组 aa

对于每个 kk0kn0 \le k \le n),统计从 aa 中恰好移除 kk 个值后,得到的数组的 MEX 可能取值的个数。


输入
第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例数。

每个测试用例的第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)—— 数组 aa 的大小。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ain0 \le a_i \le n)。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,输出一行,包含 n+1n+1 个整数,分别对应 k=0,1,,nk = 0, 1, \dots, n 时,可能得到的 MEX 值的个数。


样例
输入

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

输出

1 2 4 3 2 1
1 6 5 4 3 2 1
1 3 5 4 3 2 1
1 3 3 2 1
1 1 1 1 1 1

说明
第一个样例中,考虑 k=1k=1

  • 若移除一个 00,得到数组 [1,0,1,2][1,0,1,2]MEX=3\operatorname{MEX}=3
  • 若移除 22,得到数组 [1,0,0,1][1,0,0,1]MEX=2\operatorname{MEX}=2

可以证明这是移除恰好一个值后仅有的两种 MEX 取值,因此输出 22