import heapq
n = int(input())
nums_input = [(int(num), 0) for num in input().split()]
# 每个元素为(num, 0),0表示huffman树的叶子节点
# 构造堆
nums = []
for num in nums_input:
heapq.heappush(nums, num)
# 构造huffman树,其为字典类型,
# (key, value) = ((num, 1), (child_l, child_r, 0))
# (num, 1)中1表示huffman树的非叶子节点
# (child_l, child_r, 0)中的0后续用来表示树的深度,目前统一初始化为0
huffman = dict()
for i in range(n-1):
a = heapq.heappop(nums)
b = heapq.heappop(nums)
c = a[0] + b[0]
huffman[(c, 1)] = [a, b, 0]
heapq.heappush(nums, (c, 1))
# BFS遍历huffman树
queue = [huffman[nums[0]]]
sum = 0
keys = huffman.keys()
while queue:
node = queue.pop(0)
node[2] += 1
if node[0] in keys:
node_l = huffman[node[0]]
node_l[2] = node[2]
queue.append(node_l)
else:
sum = sum + node[0][0] * node[2]
if node[1] in keys:
node_r = huffman[node[1]]
node_r[2] = node[2]
queue.append(node_r)
else:
sum = sum + node[1][0] * node[2]
print(sum)