数学题,有规律可知当n=2时为ab,n=3时始终为ab+(a+b)c||bc+a(b+c)两种,n=4时始终为ab+(a+b)c+(a+b+c)d这种情况,以此类推,亦可证明,故两两相乘后先加即可
#include<bits/stdc++.h>
using namespace std;
int main(){
priority_queue<int,vector<int>,greater<int> >q;
int n;
cin>>n;
int x;
for(int i=1;i<=n;i++)
{
cin>>x;
q.push(x);
}
int ans = 0;
while(q.size()>=2){
int a = q.top();q.pop();
int b = q.top();q.pop();
ans += a*b;
q.push(a+b);
}
cout<<ans<<endl;
return 0;
}