import heapq
import bisect

超时,不知道应该优化哪里了

def quick_sort(array, left, right):
    if left >= right:
        return array
    low = left + 1
    high = right
    key = array[left].value
    while low < high:
        while low <= high and array[low].value <= key:
            low += 1
        while low <= high and array[high].value >= key:
            high -= 1
        if low < high:
            array[low], array[high] = array[high], array[low]
    array[left], array[high] = array[high], array[left]
    array = quick_sort(array, left, high - 1)
    array = quick_sort(array, high + 1, right)
    return array

class TreeNode:
    def __init__(self, value):
        self.value = value
        self.parent = None
        self.left = None
        self.right = None
        self.code = ''

def cal(node, res):
    if not node.left and not node.right: # 叶子节点,及输入节点
        return res + node.value * len(node.code)
    else:
        left_child = node.left
        left_child.code = node.code + '0'
        res = cal(left_child, res)
        right_child = node.right
        right_child.code = node.code + '1'
        res = cal(right_child, res)
        return res

def binarysearch(array, key):
    if not array:
        return 0
    left = 0
    right = len(array) - 1
    while left <= right:
        if key <= array[left].value:
            return left
        elif key >= array[right].value:
            return right + 1
        mid = (left + right) // 2
        if array[mid].value ==  key:
            return mid
        elif array[mid].value < key:
            left = mid + 1
        elif array[mid].value > key:
            right = mid - 1

while True:
    try:
        n = int(input())
        nums = list(map(int, input().split()))
        F = []
        while nums:
            value = nums.pop(0)
            F.append(TreeNode(value))
        quick_sort(F, 0, len(F)-1)
        while len(F) > 1:
            node_a = F.pop(0)
            node_b = F.pop(0)
            new_node = TreeNode(node_a.value + node_b.value)
            node_a.parent = new_node
            node_b.parent = new_node
            new_node.left = node_a
            new_node.right = node_b
            index = binarysearch(F, new_node.value)
            F.insert(index, new_node)
        res = 0
        print(cal(F[0], res))
    except EOFError:
        break