본문 바로가기

카테고리 없음

백준 15903번

#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 쓴 거지만 다음에는 직접 구현해보자.