P72994

Eliminating Balls With Merging (Easy Version)

时间限制: 4s 内存限制: 512MB
描述

这是本题的简单版本。该版本唯一区别是 x=nx = n。你必须解决两个版本,才可以进行 hack。

给定两个整数 nnxxx=nx = n)。有 nn 个球排成一行,从左到右编号 11nn。初始时,第 ii 个球上写有数值 aia_i

对于每一个整数 ii11nn,我们定义函数 f(i)f(i) 如下:

  • 假设集合 S=1,2,,iS = {1,2,\dots,i}

  • 在每一次操作中,你必须从集合 SS 选出一个整数 ll1l<i1 \le l < i),ll 不能是集合 SS 的最大元素。记 rr 为集合 SS 中大于 ll 的最小元素。

    • 如果 al>ara_l > a_r:令 al=al+ara_l = a_l+a_r,并把 rr 从集合 SS 中删除。

    • 如果 al<ara_l < a_r:令 ar=al+ara_r = a_l+a_r,并把 ll 从集合 SS 中删除。

    • 如果 al=ara_l = a_r:你可以选择删除 ll 或者删除 rr

      • 若选择删除 ll:令 ar=al+ara_r = a_l+a_r,并把 ll 从集合 SS 中删除。

      • 若选择删除 rr:令 al=al+ara_l = a_l+a_r,并把 rr 从集合 SS 中删除。

f(i)f(i) 代表整数 jj1ji1\le j \le i)的数量:经过恰好 i1i-1 次上述操作后,可以让集合 S=jS = {j}

对于每一个整数 iixxnn,求 f(i)f(i)

输入

第一行包含整数 tt1t1041 \le t \le 10^4),代表测试用例数量。

每个测试用例第一行包含两个整数 n,xn,x1n2105;x=n1 \le n \le 2\cdot10^5; x = n):球的数量,以及需要计算 f(i)f(i) 的最小下标 ii

每个测试用例第二行包含 a1,a2,,ana_1,a_2,\dots,a_n1ai1091 \le a_i \le 10^9),每个球上初始写的数字。

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

输出

对每个测试用例,在新的一行输出 nx+1n-x+1 个空格分隔的整数,其中第 jj 个整数代表 f(x+j1)f(x+j-1)

样例输入
3
5 5
1 2 3 2 1
7 7
4 5 1 2 1 4 5
11 11
1 2 3 1 1 9 3 2 4 1 3
样例输出
3
4
4
提示

在第一个测试用例,你需要计算 f(5)f(5)。可以证明,经过 44 次操作之后,集合 SS 可以包含 2,3,42,3,4。下面展示得到集合 S=4S={4} 的操作序列:

  • 初始 S=1,2,3,4,5S={1,2,3,4,5}a=[1,2,3,2,1]a=[1,2,3,2,1]

  • 选择 l=1l=1,自然 r=2r=2。因为 a1<a2a_1 < a_2,令 a2=1+2a_2 = 1+2,把 11SS 删除。现在 S=2,3,4,5S={2,3,4,5}a=[1,3,3,2,1]a=[1,3,3,2,1]

  • 选择 l=4l=4,自然 r=5r=5。因为 a4>a5a_4>a_5,令 a4=2+1a_4=2+1,把 55SS 删除。现在 S=2,3,4S={2,3,4}a=[1,3,3,3,1]a=[1,3,3,3,1]

  • 选择 l=3l=3,自然 r=4r=4。因为 a3=a4a_3=a_4,我们可以选择删除 33 或者 44。为了保留 44,我们删除 33。令 a4=3+3a_4=3+3,把 33SS 删除。现在 S=2,4S={2,4}a=[1,3,3,6,1]a=[1,3,3,6,1]

  • 选择 l=2l=2,自然 r=4r=4。因为 a2<a4a_2 < a_4,令 a4=3+6a_4=3+6,把 22SS 删除。最终 S=4S={4}a=[1,3,3,9,1]a=[1,3,3,9,1]

第二个测试用例需要计算 f(7)f(7)。可以证明,经过 66 次操作后,集合 SS 可以包含 2,4,6,72,4,6,7