#include <stdio.h> #include <stdlib.h> #define MAXN 10005 #define LOCAL int a[MAXN]; int cmp(const void* a_, const void *b_); int main() { #ifdef LOCAL freopen("ccc.txt", "r", stdin); #endif // LOCAL int n, i, j, r, tot; while((scanf("%d", &n))!=EOF){ tot=0; for(i=0; i<n; i++) scanf("%d", &a[i]); qsort(a, n, sizeof(int), cmp); for(i=n-1; i>0; i--){ r=a[i]+a[i-1]; j=i-2; while(j>=0 && a[j]<r){ a[j+1] = a[j]; j--; } a[j+1]=r; tot+=r; } printf("%d\n", tot); } return 0; } int cmp(const void* a_, const void *b_) { int *a = (int*)a_; int *b = (int*)b_; if(*a < *b) return 1; else return -1; }