Codeforces Round 882 (Div. 2) |
---|
Закончено |
Карс возмущен узким мышлением жителей своей деревни, поскольку они довольствуются тем, что стоят на месте, и не пытаются стать совершенной формой жизни. Будучи первоклассным изобретателем, Карс хочет усовершенствовать свое тело и стать совершенной формой жизни. К сожалению, $$$n$$$ жителей деревни с подозрением относятся к его идеям. $$$i$$$-й житель деревни подозревает Карса на $$$a_i$$$. По отдельности каждый житель деревни боится Карса, поэтому они объединяются в группы, чтобы стать сильнее.
Силу группы сельчан от $$$l$$$ до $$$r$$$ можно определить как $$$f(l,r)$$$, где $$$$$$f(l,r) = |a_l - a_{l+1}| + |a_{l + 1} - a_{l + 2}| + \ldots + |a_{r-1} - a_r|.$$$$$$ Здесь $$$|x-y|$$$ — модуль числа $$$x-y$$$. Группа с одним жителем имеет силу $$$0$$$.
Карс хочет разбить жителей деревни на ровно $$$k$$$ подряд идущих групп так, чтобы сумма их сил была минимальна. Формально, он должен найти $$$k - 1$$$ положительных целых чисел $$$1 \le r_1 < r_2 < \ldots < r_{k - 1} < n$$$ такие, что $$$f(1, r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)$$$ минимально. Помогите Карсу найти минимальное значение $$$f(1, r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)$$$.
Первая строка содержит одно целое число $$$t$$$ $$$(1 \leq t \leq 100)$$$ — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n,k$$$ $$$(1 \leq k \leq n \leq 100)$$$ — количество жителей деревни и количество групп, на которые они должны быть разбиты.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых $$$a_1,a_2, \ldots, a_n$$$ $$$(1 \leq a_i \leq 500)$$$ — подозрение каждого из жителей деревни.
Для каждого набора входных данных выведите одно целое число — минимально возможное значение суммы сил всех групп, т. е. минимально возможное значение $$$f(1,r_1) + f(r_1 + 1, r_2) + \ldots + f(r_{k-1} + 1, n)$$$.
34 21 3 5 26 31 9 12 4 7 212 81 9 8 2 3 3 1 8 7 7 9 2
4 11 2
В первом наборе входных данных сгруппируем жителей деревни с подозрениями $$$(1,3,5,2)$$$ в $$$(1,3,5)$$$ и $$$(2)$$$. Таким образом, $$$f(1,3) + f(4,4) = (|1 - 3| + |3 - 5|) + 0 = 4 + 0 = 4$$$.
Во втором наборе входных данных мы сгруппируем жителей деревни с подозрениями $$$(1,9,12,4,7,2)$$$ в $$$(1),(9,12),(4,7,2)$$$. Итак, $$$f(1,1) + f(2,3) + f(4,6) = 0 + 3 + 8 = 11$$$.
Название |
---|