#D0914. 最小极差

    ID: 19844 传统题 4000ms 512MiB 尝试: 1 已通过: 1 显示难度提高+/省选− 上传者: 标签>双指针树状数组贪心

最小极差

最小极差

题目描述

小 A 有一个长度为 nn 的正整数序列 aa,他定义这个序列的权值为所有长度为 kk 的区间的最小极差,即:

$$\min_{l=1}^{n-k+1}\left\{\max_{i=l}^{l+k-1}a_i-\min_{i=l}^{l+k-1}a_i\right\}$$

小 A 可以进行至多 mm 次操作:每次操作选择一个满足 1lrn1\le l\le r\le n 的区间 [l,r][l,r],将 [l,r][l,r] 这段区间翻转,也就是变为 ar,ar1,,ala_r,a_{r-1},\cdots,a_l

小 A 想求出在进行不超过 mm 次翻转操作后,所有可能得到的序列中权值的最小值。

输入格式

第一行包含一个整数 tt1t500001\le t\le 50000),表示测试数据组数。接下来有 tt 组测试数据。每组测试数据格式如下:

第一行输入三个整数 n,m,kn,m,k1n2×1051\le n\le 2\times10^50mn0\le m\le n1kn1\le k\le n),表示序列长度、操作次数与区间长度。

第二行 nn 个正整数 a1,a2,,ana_1,a_2,\cdots,a_n1ai1091\le a_i\le 10^9),表示序列 aa

所有测试数据中 nn 的总和不超过 2×1052\times 10^5

输出格式

对于每组测试数据,输出一行一个整数,表示进行操作后序列 aa 的最小权值。

样例

样例输入

3
6 0 3
1 6 5 9 7 12
6 1 3
1 6 5 9 7 12
10 2 5
8 6 1 7 3 12 15 5 1 9

样例输出

4
2
5