每次选两个最小的组合在一起
#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; }