#include <iostream>
#include <fstream>
#include <sstream>
#include <map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <set>
#include <climits>
#include <queue>
#include <numeric>
using namespace std;
#define ll long long
#define pb emplace_back
#define xx first
#define yy second
void solve() {
ll n, k;
cin >> n >> k;
vector<ll> vec(n, 0);
for(int i = 0; i < n; i++) {
cin >> vec[i];
}
sort(vec.begin(), vec.end(), greater<ll>());
ll segs = k + 1;
vector<ll> sum(segs);
vector<ll> bonus(segs);
int i = 0;
for (; i < n; ++i) {
sum[0] += bonus[0];
bonus[0] += vec[i];
if (bonus[0] < 0) break;
}
i++;
int j = 1;
for (; i < n; ++i) {
sum[j % segs] += bonus[j % segs];
bonus[j % segs] += vec[i];
++j;
}
ll ret = accumulate(sum.begin(), sum.end(), 0ll);
cout << ret << endl;
}
int main() {
solve();
}
1588. Sum of All Odd Length Subarrays | 1662. Check If Two String Arrays are Equivalent |
1832. Check if the Sentence Is Pangram | 1678. Goal Parser Interpretation |
1389. Create Target Array in the Given Order | 1313. Decompress Run-Length Encoded List |
1281. Subtract the Product and Sum of Digits of an Integer | 1342. Number of Steps to Reduce a Number to Zero |
1528. Shuffle String | 1365. How Many Numbers Are Smaller Than the Current Number |
771. Jewels and Stones | 1512. Number of Good Pairs |
672. Richest Customer Wealth | 1470. Shuffle the Array |
1431. Kids With the Greatest Number of Candies | 1480. Running Sum of 1d Array |
682. Baseball Game | 496. Next Greater Element I |
232. Implement Queue using Stacks | 844. Backspace String Compare |
20. Valid Parentheses | 746. Min Cost Climbing Stairs |
392. Is Subsequence | 70. Climbing Stairs |
53. Maximum Subarray | 1527A. And Then There Were K |
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers | 318. Maximum Product of Word Lengths |
448. Find All Numbers Disappeared in an Array | 1155. Number of Dice Rolls With Target Sum |