#CF2128E1. 子中位数(简单版)

子中位数(简单版)

每次测试时间限制:33
内存限制:512512 兆字节
题目描述 这是该问题的简单版本。唯一的不同是,在这个版本中,你只需要针对最大子中位数找到一个子数组。

只有当问题的两个版本都解决后,你才能进行 hack。

一个整数 vv 是长度为 mm 的数组 bb中位数,当且仅当:

  • vv 至少大于等于数组中的 m2\lceil \frac{m}{2} \rceil 个元素,并且
  • vv 至少小于等于数组中的 m2\lceil \frac{m}{2} \rceil 个元素。

例如:

  • [9,3,7][9,3,7] 的唯一中位数是 77
  • [5,3,7,9][5,3,7,9] 的中位数是 556677
  • [2,2,2][2,2,2] 的唯一中位数是 22

你被给定一个整数 kk 和一个数组 a1,,ana_1, \dots, a_n,数组元素在 11nn 之间。

如果一个整数 vv1vn1 \le v \le n)满足:存在至少一对下标 (l,r)(l,r) 使得

  • 1lrn1 \le l \le r \le n
  • rl+1kr - l + 1 \ge k
  • vv 是子数组 [al,,ar][a_l, \dots, a_r] 的一个中位数,

则称 vv子中位数

可以证明至少存在一个子中位数。请找出最大的子中位数 vmaxv_{\max},并给出任意一个对应的子数组下标 (l,r)(l,r)


输入
每个测试点包含多个测试用例。第一行包含一个整数 tt1t500001 \le t \le 50000)——测试用例的数量。
每个测试用例的第一行包含两个整数 nnkk1kn3000001 \le k \le n \le 300000)。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \le a_i \le n)。
保证所有测试用例的 nn 之和不超过 300000300000


输出
对于每个测试用例,输出三个整数 vmaxv_{\max}llrr —— 最大的子中位数 vmaxv_{\max},以及一个长度至少为 kk(即 rl+1kr-l+1 \ge k)的子数组的边界,使得 vmaxv_{\max} 是该子数组的一个中位数。

如果有多个解,输出任意一个。


示例
输入

7
4 3
4 1 2 4
5 2
1 2 3 2 1
5 3
1 2 3 2 1
5 3
1 1 2 5 3
1 1
1
2 1
2 1
4 1
1 2 1 3

输出

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

注释
在第一个测试用例中,长度至少为 k=3k=3 的子数组有:

  • (l=1,r=3)(l=1,r=3)[4,1,2][4,1,2],唯一中位数是 22
  • (l=2,r=4)(l=2,r=4)[1,2,4][1,2,4],唯一中位数是 22
  • (l=1,r=4)(l=1,r=4)[4,1,2,4][4,1,2,4],中位数是 223344

在第二个测试用例中,一个可能的输出是 (l=3,r=4)(l=3,r=4),其中位数是 2233

注意,可以证明没有长度至少为 22 的子数组能使得 4455 成为中位数。