小苯的能量项链
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小苯有一个含有 n 颗珠子的“能量项链”,珠子排成一排,其中第 i 颗珠子的能量为 a_i

但是这个项链并不稳定,如果项链的珠子个数不少于 3 个,则它即将发生“崩坏”,即:除了第一颗珠子和最后一颗珠子以外的其余所有珠子都将销毁,最终只留下第一颗最后一颗珠子。

小苯现在希望项链在“崩坏”后保留尽可能多的能量,为此他可以在崩坏前执行以下的操作:
\bullet 去掉项链的第一颗珠子(也就意味着项链原本的第二颗珠子将会变成第一颗)。
\bullet 去掉项链的最后一颗珠子(也就意味着项链原本的倒数第二颗珠子将会变成最后一颗)。

两种操作各自均需要花费 1 秒时间,而现在距离项链发生“崩坏”仅剩 k 秒,小苯想知道,他最多可以保留住多少能量,请你帮他算一算吧。

输入描述:

每个测试文件内都包含多组测试数据。
第一行一个正整数 T\ (1 \leq T \leq 1000),表示测试数据的组数。
接下来对于每组测试数据,输入包含两行。
第一行两个整数 n, k\ (1 \leq n \leq 5 \times 10^5, 0 \leq k \leq 10^9),表示项链的珠子个数和距离项链“崩坏”的时间。
第二行 n 个正整数 a_i\ (1 \leq a_i \leq 10^9),表示每颗珠子的能量。
(保证所有测试数据中 n 的总和不超过 5 \times 10^5。)

输出描述:

对于每组测试数据,输出一行一个整数表示小苯能保留的最大能量。
示例1

输入

复制
2
5 2
2 3 4 5 2
1 1
114514

输出

复制
8
114514

说明

对于第一组测试数据,距离发生“崩坏”还有 k=2 秒,最优的方案是删除目前的第一个和最后一个数字,那么项链的能量会变成:\{3,4,5\},最终 35 会保留下来,因此最大值为 8
对于第二组测试数据,由于项链珠子个数小于3,因此不会发生崩坏,最终保留的能量就是 114514