思路:
经典合并果子问题
#include<iostream>
#include<string.h>
#include <stdlib.h>
#include <stdio.h>
#include<cstring>
#include <queue>
using namespace std;
priority_queue<int ,vector<int >,greater<int > >q;
int main()
{
int n;
int ans=0;
cin>>n;
while(n--)
{
int t;
cin>>t;
q.push(t);
}
while(!q.empty()&&q.size()!=1 )
{
int temp=0;
temp+=q.top();
q.pop();
temp+=q.top();
q.pop();
q.push(temp);
ans+=temp;
}
cout<<ans<<endl;
}