简单的模拟,先对数组进行排序,让答案的初始值为数组和,然后sum每次都要减去一个小的,ans继续累加,最后没有加上最后一个元素,因此要减去
#include<iostream>
#include<algorithm>
using namespace std;
long long a[300005];
int main()
{
long long n;
cin>>n;
long long sum=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
sum+=a[i];
}
sort(a,a+n);
long long ans=sum;
for(int i=0;i<n;i++)
{
sum-=a[i];
ans+=sum+a[i];
}
cout<<ans-a[n-1]<<endl;
return 0;
}