#CF2146E. 又一个墨西哥问题

又一个墨西哥问题

E. 又一个墨西哥问题

每次测试时间限制22
每次测试内存限制512512 兆字节

我们定义数组 bb权重为满足 bi>MEX(b)b_i > \operatorname{MEX}(b) 的下标 ii1im1 \le i \le m)的个数。
这里 MEX(b)\operatorname{MEX}(b) 表示整数数组 bb 的最小排除值(MEX)^*

你被赋予一个数组 aa,包含 nn 个非负整数。对于它的子数组 [al,al+1,,ar][a_l, a_{l+1}, \dots, a_r],记该子数组的权重为 w(l,r)w(l, r)

对于每个 1in1 \le i \le n,你必须找到所有以 ii 结尾的子数组的最大权重
换句话说,对于每个 1in1 \le i \le n,求出:

max1liw(l,i)\max_{1 \le l \le i} w(l, i)

^* 定义
一个整数集合 {b1,b2,,bm}\{b_1, b_2, \dots, b_m\}MEX 是最小的非负整数 xx,使得 xx 不在该集合中出现。

^\dagger 定义
数组 cc 是数组 aa子数组,如果 cc 可以通过从 aa 的开头删除若干(可能为零或全部)元素,以及从结尾删除若干(可能为零或全部)元素得到。


输入

每个测试包含多个测试用例。第一行包含测试用例的数量 tt1t1041 \le t \le 10^4)。
接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n3×1051 \le n \le 3 \times 10^5)—— 数组 aa 的长度。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ain0 \le a_i \le n)—— 数组 aa 的元素。

保证所有测试用例的 nn 之和不超过 3×1053 \times 10^5


输出

对于每个测试用例,输出 nn 个整数,其中第 ii 个整数表示所有以 ii 结尾的子数组的最大权重,即:

max1liw(l,i)\max_{1 \le l \le i} w(l, i)

示例

输入

6
1
0
5
2 0 3 0 1
6
0 1 2 3 5 4
7
0 2 2 0 4 1 3
8
2 1 0 3 0 2 1 3
15
0 1 9 1 0 2 5 3 7 0 4 15 2 0 1

输出

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

注释

第一个测试用例
w(1,1)=0w(1,1) = 0,因为 MEX([a1])=1\operatorname{MEX}([a_1]) = 1,且没有满足 ai>1a_i > 1 的下标。

第二个测试用例a=[2,0,3,0,1]a = [2,0,3,0,1]):

  • w(1,1)=1w(1,1) = 1,因此 max1l1w(l,1)=1\max\limits_{1\le l \le 1} w(l,1) = 1
  • w(1,2)=1w(1,2) = 1w(2,2)=0w(2,2) = 0,因此 max1l2w(l,2)=1\max\limits_{1\le l \le 2} w(l,2) = 1
  • w(1,3)=2w(1,3) = 2w(2,3)=1w(2,3) = 1w(3,3)=1w(3,3) = 1,因此 max1l3w(l,3)=2\max\limits_{1\le l \le 3} w(l,3) = 2
  • w(1,4)=2w(1,4) = 2w(2,4)=1w(2,4) = 1w(3,4)=1w(3,4) = 1w(4,4)=0w(4,4) = 0,因此 max1l4w(l,4)=2\max\limits_{1\le l \le 4} w(l,4) = 2
  • w(1,5)=0w(1,5) = 0w(2,5)=1w(2,5) = 1w(3,5)=1w(3,5) = 1w(4,5)=0w(4,5) = 0w(5,5)=1w(5,5) = 1,因此 max1l5w(l,5)=1\max\limits_{1\le l \le 5} w(l,5) = 1

例如,w(1,4)=2w(1,4) = 2,因为 MEX([a1,a2,a3,a4])=1\operatorname{MEX}([a_1,a_2,a_3,a_4]) = 1,并且子数组中有两个下标满足 ai>1a_i > 1i=1i=1i=3i=3