#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a, const void*b)
{
    return *(int *)a-*(int *)b;
}
void swap(int *x,int *y)
{
    int t=*x;*x=*y;*y=t;
}
int main()
{
    int n,i,j,s,ans=0,a[10005];
    scanf("%d",&n);
    for(i=0;i<n; i++)
        scanf("%d",&a[i]);
    qsort(a,n,sizeof(a[0]),cmp);
    for(i=1;i<n;i++)
    {
        a[i]=a[i]+a[i-1];
        ans+=a[i];
        j=i;
        while((a[j]>a[j+1])&&(j<n-1))
        {
            swap(&a[j],&a[j+1]);
            j++;
        }
    }
    printf("%d",ans);
    return 0;
}

/**************************************************************
	Problem: 2249
	User: admin
	Language: C
	Result: Accepted
	Time:226 ms
	Memory:1144 kb
****************************************************************/