310428: CF1832B. Maximum Sum

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

Description

B. Maximum Sumtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

You are given an array $a_1, a_2, \dots, a_n$, where all elements are different.

You have to perform exactly $k$ operations with it. During each operation, you do exactly one of the following two actions (you choose which to do yourself):

  • find two minimum elements in the array, and delete them;
  • find the maximum element in the array, and delete it.

You have to calculate the maximum possible sum of elements in the resulting array.

Input

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

Each test case consists of two lines:

  • the first line contains two integers $n$ and $k$ ($3 \le n \le 2 \cdot 10^5$; $1 \le k \le 99999$; $2k < n$) — the number of elements and operations, respectively.
  • the second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$; all $a_i$ are different) — the elements of the array.

Additional constraint on the input: the sum of $n$ does not exceed $2 \cdot 10^5$.

Output

For each test case, print one integer — the maximum possible sum of elements in the resulting array.

ExampleInput
6
5 1
2 5 1 10 6
5 2
2 5 1 10 6
3 1
1 2 3
6 1
15 22 12 10 13 11
6 2
15 22 12 10 13 11
5 1
999999996 999999999 999999997 999999998 999999995
Output
21
11
3
62
46
3999999986
Note

In the first testcase, applying the first operation produces the following outcome:

  • two minimums are $1$ and $2$; removing them leaves the array as $[5, 10, 6]$, with sum $21$;
  • a maximum is $10$; removing it leaves the array as $[2, 5, 1, 6]$, with sum $14$.

$21$ is the best answer.

In the second testcase, it's optimal to first erase two minimums, then a maximum.

Input

题意翻译

**本题有多组测试数据** 给定一个长度为 $n$ 的数列,其中每个元素互不相同,进行 $k$ 次操作,每次可以选择删除序列中最小的两个数或最大的一个数。求操作后剩余数的和的最大值。 $3 \leq n \leq 2 \times 10^{5},1 \leq k \leq 99999,2k \leq n$。

Output

题目大意:
给定一个所有元素都不同的数组a_1, a_2, ..., a_n。你必须对这个数组执行恰好k次操作。每次操作,你可以选择以下两种动作之一:

1. 找到数组中的两个最小元素并删除它们;
2. 找到数组中的最大元素并删除它。

你需要计算结果数组中元素的最大可能和。

输入数据格式:
第一行包含一个整数t(1 ≤ t ≤ 10^4)——测试用例的数量。
每个测试用例包含两行:
1. 第一行包含两个整数n和k(3 ≤ n ≤ 2 * 10^5;1 ≤ k ≤ 99999;2k < n)——元素的数量和操作的数量。
2. 第二行包含n个整数a_1, a_2, ..., a_n(1 ≤ a_i ≤ 10^9;所有a_i都不同)——数组的元素。

输入数据的附加约束:n的总和不超过2 * 10^5。

输出数据格式:
对于每个测试用例,打印一个整数——结果数组中元素的最大可能和。

示例:
输入:
6
5 1
2 5 1 10 6
5 2
2 5 1 10 6
3 1
1 2 3
6 1
15 22 12 10 13 11
6 2
15 22 12 10 13 11
5 1
999999996 999999999 999999997 999999998 999999995

输出:
21
11
3
62
46
3999999986

注意:
在第一个测试用例中,应用第一种操作产生以下结果:
- 两个最小元素是1和2;删除它们后数组为[5, 10, 6],和为21;
- 最大元素是10;删除它后数组为[2, 5, 1, 6],和为14。

21是最好的答案。

在第二个测试用例中,最优的操作是首先删除两个最小元素,然后删除一个最大元素。题目大意: 给定一个所有元素都不同的数组a_1, a_2, ..., a_n。你必须对这个数组执行恰好k次操作。每次操作,你可以选择以下两种动作之一: 1. 找到数组中的两个最小元素并删除它们; 2. 找到数组中的最大元素并删除它。 你需要计算结果数组中元素的最大可能和。 输入数据格式: 第一行包含一个整数t(1 ≤ t ≤ 10^4)——测试用例的数量。 每个测试用例包含两行: 1. 第一行包含两个整数n和k(3 ≤ n ≤ 2 * 10^5;1 ≤ k ≤ 99999;2k < n)——元素的数量和操作的数量。 2. 第二行包含n个整数a_1, a_2, ..., a_n(1 ≤ a_i ≤ 10^9;所有a_i都不同)——数组的元素。 输入数据的附加约束:n的总和不超过2 * 10^5。 输出数据格式: 对于每个测试用例,打印一个整数——结果数组中元素的最大可能和。 示例: 输入: 6 5 1 2 5 1 10 6 5 2 2 5 1 10 6 3 1 1 2 3 6 1 15 22 12 10 13 11 6 2 15 22 12 10 13 11 5 1 999999996 999999999 999999997 999999998 999999995 输出: 21 11 3 62 46 3999999986 注意: 在第一个测试用例中,应用第一种操作产生以下结果: - 两个最小元素是1和2;删除它们后数组为[5, 10, 6],和为21; - 最大元素是10;删除它后数组为[2, 5, 1, 6],和为14。 21是最好的答案。 在第二个测试用例中,最优的操作是首先删除两个最小元素,然后删除一个最大元素。

加入题单

上一题 下一题 算法标签: