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)