每次选两个最小的组合在一起
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e3;
int n;
int arr[N];
int main(){
int i,j;
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
scanf("%d",&arr[i]);
}
ll sum=0;
for(i=1;i<n;i++){
sort(arr+i-1,arr+n);
arr[i]+=arr[i-1];
sum+=arr[i];
}
printf("%lld\n",sum);
}
return 0;
}

京公网安备 11010502036488号