#include <iostream>
#include <queue>
#include <unordered_map>
using namespace std;
int main() {
int n;
while (cin >> n) { // 注意 while 处理多个 case
if(!n)break;
priority_queue<int,vector<int>, greater<int>> heap;
while(n--){
int a;
cin>>a;
heap.push(a);
}
int ans=0;
while(heap.size()){
if(heap.size()==1){
break;
}
int a = heap.top();
heap.pop();
int b = heap.top();
heap.pop();
ans+=a+b;
heap.push(a+b);
}
cout<<ans<<endl;
}
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号