#include<bits/stdc++.h>
using namespace std;
int a[10001];
int main()
{
int n,s=0;
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
scanf("%d",&a[0]);
int j=i-1;
while (a[0]>a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=a[0];
}
for (int i=n-1;i>=1;i--)
{
a[i]+=a[i+1];
s+=a[i];
a[0]=a[i];
int j=i-1;
while (a[0]>a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=a[0];
}
printf("%d\n",s);
return 0;
}
引用的洛古上一个题解。
从此中可学到插入排序的思想。之前这道题我想用递归,可是实在想不出来。