#P1509. 最大子段和(二)

最大子段和(二)

题目描述

输入一个长度为nn的整数序列a1,a2,...ana_1,a_2,...a_n。你的任务是恰好选择两个非空子段。子段是指原序列中的连续一段。这两个子段不能有重复部分,且他们之间相隔必须大于kk

例如,选择子段[1,5][1,5][8,10][8,10]k=2k=2时合法,但是在k3k\ge 3时就不合法了。

你需要最大化你选择的这两个子段内的整数之和。请求出这个最大值。

输入描述

第一行输入一个正整数T(1T5)T(1\le T\le 5),表示数据组数。

对于每一组数据,第一行输入两个整数n,k(1n105,0kn2)n,k(1\le n\le 10^5,0\le k\le n-2)

第二行输入nn个整数a1,a2,...an(104ai104)a_1,a_2,...a_n(-10^4\le a_i\le 10^4)

输出描述

对于每一组数据,输出一行一个整数,表示答案。

样例1

输入

3
5 3
-1 1 2 3 -1
8 3
5 5 -1 -2 3 -1 2 -2
6 0
5 -1 5 0 -1 9

输出

-2
12
18

样例解释

第一组数据,只能选择[1,1][1,1][5,5][5,5],这样答案就是2-2

第二组数据,可以选择[1,2][1,2][7,7][7,7],这样答案就是5+5+2=125+5+2=12

第三组数据,可以选择[1,4][1,4][6,6][6,6],这样答案就是5+(1)+5+0+9=185+(-1)+5+0+9=18