311311: CF1969C. Minimizing the Sum

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

C. Minimizing the Sumtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

You are given an integer array $a$ of length $n$.

You can perform the following operation: choose an element of the array and replace it with any of its neighbor's value.

For example, if $a=[3, 1, 2]$, you can get one of the arrays $[3, 3, 2]$, $[3, 2, 2]$ and $[1, 1, 2]$ using one operation, but not $[2, 1, 2$] or $[3, 4, 2]$.

Your task is to calculate the minimum possible total sum of the array if you can perform the aforementioned operation at most $k$ times.

Input

The first line contains a single integer $t$ ($1 \le t \le 10^4$) — the number of test cases.

The first line of each test case contains two integers $n$ and $k$ ($1 \le n \le 3 \cdot 10^5$; $0 \le k \le 10$).

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$).

Additional constraint on the input: the sum of $n$ over all test cases doesn't exceed $3 \cdot 10^5$.

Output

For each test case, print a single integer — the minimum possible total sum of the array if you can perform the aforementioned operation at most $k$ times.

ExampleInput
4
3 1
3 1 2
1 3
5
4 2
2 2 1 3
6 3
4 1 2 2 4 3
Output
4
5
5
10
Note

In the first example, one of the possible sequences of operations is the following: $[3, 1, 2] \rightarrow [1, 1, 2$].

In the second example, you do not need to apply the operation.

In the third example, one of the possible sequences of operations is the following: $[2, 2, 1, 3] \rightarrow [2, 1, 1, 3] \rightarrow [2, 1, 1, 1]$.

In the fourth example, one of the possible sequences of operations is the following: $[4, 1, 2, 2, 4, 3] \rightarrow [1, 1, 2, 2, 4, 3] \rightarrow [1, 1, 1, 2, 4, 3] \rightarrow [1, 1, 1, 2, 2, 3]$.

Output

题目大意:
给定一个整数数组a,长度为n。可以选择数组中的一个元素,并将其替换为其邻居的值。要求计算如果可以进行上述操作最多k次,数组的总和对最小可能是多少。

输入输出数据格式:
输入:
- 第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。
- 每个测试用例的第一行包含两个整数n和k(1≤n≤3×10^5;0≤k≤10)。
- 第二行包含n个整数a_1, a_2, ..., a_n(1≤a_i≤10^9)。
- 输入的额外限制:所有测试用例的n之和不超过3×10^5。

输出:
- 对于每个测试用例,输出一个整数——如果可以进行上述操作最多k次,数组的总和对最小可能是多少。

示例:
输入:
```
4
3 1
3 1 2
1 3
5
4 2
2 2 1 3
6 3
4 1 2 2 4 3
```
输出:
```
4
5
5
10
```题目大意: 给定一个整数数组a,长度为n。可以选择数组中的一个元素,并将其替换为其邻居的值。要求计算如果可以进行上述操作最多k次,数组的总和对最小可能是多少。 输入输出数据格式: 输入: - 第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。 - 每个测试用例的第一行包含两个整数n和k(1≤n≤3×10^5;0≤k≤10)。 - 第二行包含n个整数a_1, a_2, ..., a_n(1≤a_i≤10^9)。 - 输入的额外限制:所有测试用例的n之和不超过3×10^5。 输出: - 对于每个测试用例,输出一个整数——如果可以进行上述操作最多k次,数组的总和对最小可能是多少。 示例: 输入: ``` 4 3 1 3 1 2 1 3 5 4 2 2 2 1 3 6 3 4 1 2 2 4 3 ``` 输出: ``` 4 5 5 10 ```

加入题单

上一题 下一题 算法标签: