CF BUDDY
← Problems·

1197C · Array Splitting

1400 · greedy, sortings

Problem: You are given a sorted array a1,a2,,ana_1, a_2, \dots, a_n (for each index i>1i > 1 condition aiai1a_i \ge a_{i-1} holds) and an integer kk.

You are asked to divide this array into kk non-empty consecutive subarrays. Every element in the array should be included in exactly one subarray.

Let max(i)max(i) be equal to the maximum in the ii-th subarray, and min(i)min(i) be equal to the minimum in the ii-th subarray. The cost of division is equal to i=1k(max(i)min(i))\sum\limits_{i=1}^{k} (max(i) - min(i)). For example, if a=[2,4,5,5,8,11,19]a = [2, 4, 5, 5, 8, 11, 19] and we divide it into 33 subarrays in the following way: [2,4],[5,5],[8,11,19][2, 4], [5, 5], [8, 11, 19], then the cost of division is equal to (42)+(55)+(198)=13(4 - 2) + (5 - 5) + (19 - 8) = 13.

Calculate the minimum cost you can obtain by dividing the array aa into kk non-empty consecutive subarrays.

Input Format: The first line contains two integers nn and kk (1kn31051 \le k \le n \le 3 \cdot 10^5).

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n (1ai109 1 \le a_i \le 10^9, aiai1a_i \ge a_{i-1}).

Output Format: Print the minimum cost you can obtain by dividing the array aa into kk nonempty consecutive subarrays.

Note: In the first test we can divide array aa in the following way: [4,8,15,16],[23],[42][4, 8, 15, 16], [23], [42].

Sample Cases

Case 1

Input

6 3
4 8 15 16 23 42

Output

12

Case 2

Input

4 4
1 3 3 7

Output

0

Case 3

Input

8 1
1 1 2 3 5 8 13 21

Output

20

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback