#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 ****************************************************************/