#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
#define prii(a,b) cout << a << " " << b << endl;
using namespace std;
int main()
{
int n,x;
while(scanf("%d", &n)==1 and n)
{
priority_queue<int> pq;
// priority_queue < int, vector<int>, greater<int> > pq;
REP(i,n)
{
scanf("%d", &x);
pq.push(-x);
}
LL sm = 0;
while(SZ(pq)>1)
{
int a = pq.top(); pq.pop();
int b = pq.top(); pq.pop();
sm += -(a+b);
pq.push(a+b);
}
printf("%lld\n", sm);
}
return 0;
}