每次选取最大的石子堆与其他堆合并,显然留下的是最大的一堆,结果也一定是最大的*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; }