#CF4047. 太2了

太2了

题目描述

给定一个长度为 nn 的数组 aa 和一个整数 kk,求出索引 i(1ink)i(1≤i≤n−k) 的数量,使得长度为 k+1k+1(而不是长度为 kk)的子数组 [ai,,ai+k][a_i,…,a_{i+k}] 具有以下性质:

如果第一个元素乘以 202^0,第二个元素乘以 212^1,……,将第 (k+1)(k+1) 个元素乘以 2k2^k,则该子数组按严格递增顺序排序。

更公式化地说,计算指数 i(1ink)i(1≤i≤n−k) 的数量,使 20ai<21ai+1<22ai+2<<2kai+k2^0⋅a_i<2^1⋅a_{i+1}<2^2⋅a_{i+2}<……<2^k⋅a_{i+k}

输入格式

第一行包含整数 t(1t1000)t(1≤t≤1000) 表示测试用例数。

每个测试用例的第一行包含两个整数 n,k(3n21051k<n)n,k(3≤n≤2⋅10^5,1≤k<n) 表示数组的长度和需满足不等式的数量。

每个测试用例的第二行包含 nn 个整数 a1,a2,,an(1ai109)a_1,a_2,…,a_n(1≤a_i≤10^9) 表示数组元素。

所有测试用例的 nn 之和不超过 21052⋅10^5

输出格式

对于每个测试用例,输出一个整数,表示满足要求的索引数。

测试样例

6
4 2
20 22 19 84
5 1
9 5 3 2 1
5 2
9 5 3 2 1
7 2
22 12 16 4 3 22 12
7 3
22 12 16 4 3 22 12
9 3
3 9 12 3 9 12 3 9 12
2
3
2
3
1
0

样例说明

在第一个测试用例中,两个子数组都满足以下条件:

i=1i=1:子数组 [a1,a2,a3]=[20,22,19]120<222<419[a_1,a_2,a_3]=[20,22,19],1⋅20<2⋅22<4⋅19

i=2i=2:子数组 [a2a3a4]=[221984]122<219<484[a_2,a_3,a_4]=[22,19,84],1⋅22<2⋅19<4⋅84

在第二个测试用例中,三个子数组满足以下条件:

i=1i=1:子数组 [a1,a2]=[9,5][a_1,a_2]=[9,5],且 19<251⋅9<2⋅5

i=2i=2:子数组 [a2,a3]=[5,3][a_2,a_3]=[5,3],且 15<231⋅5<2⋅3

i=3i=3:子数组 [a3,a4]=[3,2][a_3,a_4]=[3,2],且 13<221⋅3<2⋅2

i=4i=4:子数组 [a4,a5]=[2,1][a_4,a_5]=[2,1],但 12=211⋅2=2⋅1,因此该子数组不满足条件。