堆的模板题
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+10;
priority_queue<int,vector<int>,greater<int> > q;
int n,a[maxn],sum;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
q.push(a[i]);
}
while(q.size()>1){
int x=q.top();q.pop();
int y=q.top();q.pop();
sum+=(x+y);
q.push(x+y);
}
printf("%d\n",sum);
}