CF1946B.Maximum Sum

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Maximum Sum

You have an array aa of nn integers.

You perform exactly kk operations on it. In one operation, you select any contiguous subarray of the array aa (possibly empty) and insert the sum of this subarray anywhere in the array.

Your task is to find the maximum possible sum of the array after kk such operations.

As this number can be very large, output the answer modulo 109+710^9 + 7.

Reminder: the remainder of a number xx modulo pp is the smallest non-negative yy such that there exists an integer qq and x=pq+yx = p \cdot q + y.

Input

Each test consists of several test cases. The first line contains a single integer tt (1t1041 \le t \le 10^4) — the number of test cases. Then follows the description of the test cases.

The first line of each test case contains two integers nn and kk (1n,k21051 \le n, k \le 2 \cdot 10^5) — the length of the array aa and the number of operations, respectively.

The second line of each test case contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n (109ai109-10^9 \le a_i \le 10^9) — the array aa itself.

It is guaranteed that the sum of the values of nn and kk for all test cases does not exceed 21052 \cdot 10^5.

Output

For each test, output a single integer — the maximum sum of the array that can be obtained after kk operations modulo 109+710^9 + 7.

Note

In the first test case, it is advantageous to take an empty subarray of the array twice and insert the sum of the empty subarray (zero) anywhere, then the sum of the resulting array will be (4)+(7)+0+0=11(-4) + (-7) + 0 + 0 = -11, modulo 109+710^9 + 7 this is 999999996999\,999\,996.

In the second test case, it is advantageous to take the sum of the entire array three times and place it anywhere in the array, then one of the possible sequences of actions: [2,2,82, 2, 8] \rightarrow [2,2,8,122, 2, 8, 12] \rightarrow [2,2,8,12,242, 2, 8, 12, 24] \rightarrow [2,2,8,12,24,482, 2, 8, 12, 24, 48], the sum of the final array is 2+2+8+12+24+48=962 + 2 + 8 + 12 + 24 + 48 = 96.

In the fourth test case, it is advantageous to take a subarray of the array consisting of the first three numbers (i.e. consisting of the numbers 4,24, -2 and 88) and insert its sum at the beginning of the array, thereby obtaining the array [10,4,2,8,12,910, 4, -2, 8, -12, 9], the sum of this array is 1717.

In the seventh test case, it will always be advantageous for us to take an empty subarray of the array. In this case, the sum of the resulting array will not differ from the sum of the original. The answer will be the sum of the original array, taken modulo — 4242, because (6(109+7)+42=6000000000)(-6 \cdot (10^9 + 7) + 42 = -6\,000\,000\,000).

Samples

12
2 2
-4 -7
3 3
2 2 8
1 7
7
5 1
4 -2 8 -12 9
7 4
8 14 -9 6 0 -1 3
7 100
5 3 -8 12 -5 -9 3
6 1000
-1000000000 -1000000000 -1000000000 -1000000000 -1000000000 -1000000000
2 1
1000000000 8
5 4
0 0 0 0 0
6 10
48973 757292 58277 -38574 27475 999984
7 1
-1000 1000 -1000 1000 -1000 1000 -1000
10 10050
408293874 -3498597 7374783 295774930 -48574034 26623784 498754833 -294875830 283045804 85938045
999999996
96
896
17
351
716455332
42
2
0
897909241
0
416571966

在线编程 IDE

建议全屏模式获得最佳体验