题意:中文题面,不需要解释了。
思路:这是一种哈夫曼型贪心,用优先队列即可。
AC代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn = 10010;
priority_queue<int,vector<int>,greater<int> > q;
int main(void){
    int n;
    cin>>n;
    for(int i = 1; i <= n; i++){
        int x;
        cin>>x;
        q.push(x);
    }
    int sum = 0;
    while(q.size()>1){
        int a = q.top();
        q.pop();
        int b = q.top();
        q.pop();
        sum += a+b; 
        q.push(a+b);
    }
    cout<<sum<<endl;
    return 0;
}