2037. cats与物理实验

时间限制 1000 ms   内存限制 256 MB

cats 正在上物理实验课。在这节实验课上,cats 对同一个实验内容做了 $n$ 次实验,并得到了一个包含 $n$ 个实验数据的序列 $a_1,a_2,\cdots a_n$。遗憾的是,由于一些未知原因,cats 得到的这 $n$ 个数据并不一定完全相同,这让 cats 非常失落。

定义这 $n$ 个数据序列的失衡值为这 $n$ 个数据中每对相邻数据差的绝对值之和,即 $\sum_{i=1}^{n-1} |a_i-a_{i+1}|$。当 $n \leq 1$ 时,定义实验数据序列的失衡值为 $0$。当数据序列的失衡值超过 $k$ 时,实验课老师就会因为 cats 做实验不认真而给 cats 记零分。

为避免被记零分,cats 会执行以下操作至多一次:选择一个区间 $[l,r]$ $(1\leq l \leq r \leq n)$,将区间 $[l,r]$ 内的数据全部移除。并将区间左右两侧的数据(如果存在)沿着中间切开的位置拼接在一起,得到一个新的序列。注意在操作中序列的长度 $n$ 会减少 $r-l+1$。

经过零次或一次操作后,cats 希望得到的实验数据序列的失衡值不超过 $k$。同时,为避免引起实验课老师的怀疑,cats 希望得到的序列长度 $n$ 尽可能更大。你能帮 cats 算算最终序列长度可能的最大值吗?

输入数据

第一行为一个整数 $T\ (1\le T\le 10^4)$ ,表示测试点的总数。

对于每个测试点:

第一行为两个整数 $n,k\ (2 \leq n \leq 2 \times 10^5,1\leq k \leq 2 \times 10^{14})$,表示 cats 初始得到的实验数据序列的长度和允许的失衡值上限。

第二行为 $n$ 个整数 $a_1,a_2,\cdots a_n\ (1 \leq a_i \leq 10^9)$,表示 cats 初始得到的实验数据序列。

保证所有测试点的 $n$ 之和不超过 $2\times 10^5$ 。

输出数据

对于每组测试点,输出一个整数,表示 cats 最终的实验数据序列长度可能的最大值。

样例输入

复制
5
3 1
1 4 2
4 8
1 4 2 3
6 2
3 3 3 3 6 6
7 4000000000
1 1000000000 1 1000000000 1 1000000000 1
8 1
3 1 4 1 5 9 2 6 \n
 · \n
 · · \n
 · \n
 · · · \n
 · \n
 · · · · · \n
 ·          \n
 ·          · ·          · ·          · \n
 · \n
 · · · · · · · \n

样例输出

复制
2
4
4
6
1 \n
 \n
 \n
 \n
 \n

样例说明

在第一组测试点中,可以选择移除区间 $[2,2]$。得到的序列为 $(1,2)$,失衡值为 $1$。

在第二组测试点中,可以选择不进行任何操作。得到的序列为 $(1,4,2,3)$,失衡值为 $6$。

在第三组测试点中,可以选择移除区间 $[5,6]$。得到的序列为 $(3,3,3,3)$,失衡值为 $0$。

在第四组测试点中,可以选择移除区间 $[4,4]$。得到的序列为 $(1,1000000000,1,1,1000000000,1)$,失衡值为 $3999999996$。

在第五组测试点中,可以选择移除区间 $[1,7]$。得到的序列为 $(6)$,失衡值为 $0$。

可以证明不存在使最终的实验数据序列长度更大的操作方案。

提交

请先 登录

© 2025 FAQs Contact About