[BOJ][11399] ATM


質問する



問題のソース

トラブルシューティングポリシー


昇順でソートすると、それぞれの順番が自分の順番までに最小限のマージ時間が必要になるので、昇順でソートした後、自分の順番を加えた値の和を計算して出力すればよいのです.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main(){
	int n; cin >> n;
	vector<int> p(n);

	for(int i  = 0;i < n;i++)
		cin >> p[i];
	
	sort(p.begin(), p.end());
	int sum = 0;
	for(int i = 0;i < p.size();i++){
		for(int j = 0;j <= i;j++){
			sum += p[j];
		}
	}
	cout << sum << endl;


}