#include <stdio.h>
#include <limits.h>
int getMin(int[], int); //n개의 배열중 최소값을 반환
void swap(int&, int&); //두개의 정수값을 스왑
int main() {
int A[1000] = {};
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &A[i]); //학생 수와 인출소요 시간 입력
int sum = 0;
int sumHour = 0;
for (int i = n - 1; i >= 0; i--) {
sum += getMin(A, i);
sumHour += sum;
}
printf("%d", sumHour);
}
int getMin(int a[], int n) {
int min = 0;
for (int i = 1; i <= n; i++)
if (a[i] < a[min]) min = i;
swap(a[min], a[n]);
return a[n];
}
void swap(int& a, int& b){
int tmp;
tmp = a;
a = b;
b = tmp;
}