02
#include<iostream>
#include<algorithm>
using namespace std;
//赫夫曼树的带权路径长度等于非叶节点的权值之和 !!!
int main()
{
int n;
cin >> n;
int a = 0, b = 0, c = 0, d = 0, e = 0;
int arr[100] = { 0 }; //初始化数组
for (int i = 0; i < n; i++)
{
cin >> arr[i]; //向这个数组中输入元素
}
b = n - 1; c = n - 2; //选定最后两个元素
for (int i = 1; i < n; i++)
{
sort(arr, arr + n, greater<int>()); //对int数组从大到小排序排序 greater<int>()
e = arr[b] + arr[c]; //e记录最小的两个值的权值之和
d += e; //d记录带权路径长度
arr[b] = e; //舍去最后一个元素 把最后一个元素替换为所计算出的e的值
b--; c--; //依次递减
}
cout << d;
return 0;
}