选取两个最大的合并
#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
cin>>n;
priority_queue<int>q;
for (int i=1,x;i<=n;i++)
{
cin>>x;
q.push(x);
}
ll ans=0;
while(!q.empty())
{
int temp=q.top();q=pop();
temp+=q.top();q.pop();
ans+=temp;
if(q.empty()) break;
q.push(temp);
}
cout<<ans<<endl;
return 0;
}
#####这道题代码比较好理解把