#include <iostream>
#include <math.h>
#include <queue>
using namespace std;
int total;
int num;
long long int total_sum = 0;
int main() {
cin.tie(0);
ios_base::sync_with_stdio(false);
priority_queue<long long int , vector<long long int >, greater<long long int >> pq;
cin >> total;
cin >> num;
int temp;
for (int i = 0; i < total; i++) {
cin >> temp;
pq.push(temp);
}
for (int i = 0; i < num; i++) {
long long int num1, num2, sum;
num1 = pq.top();
pq.pop();
num2 = pq.top();
pq.pop();
sum = num1 + num2;
pq.push(sum);
pq.push(sum);
}
for (int i = 0; i < total; i++) {
total_sum += pq.top();
pq.pop();
}
cout << total_sum;
}
빨리 풀려고 STL 쓴 거지만 다음에는 직접 구현해보자.