每次选取最大的石子堆与其他堆合并,显然留下的是最大的一堆,结果也一定是最大的*n-1+其他全部和

注意不要越界

代码

void solve()
{
    ll a,b,ma=0,su=0;
    cin>>a;
    for(int i=0;i<a;i++)
    {
        cin>>b;
        su+=b;
        ma=max(ma,b);
    }
    cout<<su+ma*(a-2)<<endl;
}