//uva10954 #include <iostream> #include <queue> using namespace std; typedef long long ll; template <typename T,typename U,typename V> T pop(priority_queue<T, U, V> &q) { T ret = q.top(); q.pop(); return ret; } int main() { int n; while (cin >> n) { if (n == 0) break; priority_queue<ll, vector<ll>,greater<ll>> q; while (n--) { int x; cin >> x; q.push(x); } ll sum = 0; while (q.size() > 1) { ll cost = pop(q) + pop(q); sum += cost; q.push(cost); } cout << sum << endl; } return 0; }