# -*- coding: utf-8 -*-

import sys

import math

from bisect import bisect_left

from bisect import bisect_right

from collections import defaultdict

from heapq import heappop, heappush

import itertools

import random

from collections import deque

from decimal import *

import queue



input = sys.stdin.readline



def inputInt(): return int(eval(input()))

def inputMap(): return list(map(int, input().split()))

def inputList(): return list(map(int, input().split()))

def inputStr(): return input()[:-1]



inf = float('inf')

mod = 1000000007



#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-



def main():

	N = inputInt()

	A = inputList()



	A.sort()

	A = A[::-1]

	ans = 0

	maxs = 0

	cnt = 0

	fst = True



	ansans = []

	pgt = queue.Queue()

	for i,val in enumerate(A):

		if i == 0:

			pgt.put(val)

		else:

			tmp = pgt.get()

			ansans.append(tmp)



			pgt.put(val)



			if tmp == val:

				pgt.put(val)

			else:

				pgt.put(val)



	#print(ansans)

	print((sum(ansans)))





#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

if __name__ == "__main__":

	main()

# -*- coding: utf-8 -*-

import sys

import math

from bisect import bisect_left

from bisect import bisect_right

from collections import defaultdict

from heapq import heappop, heappush

import itertools

import random

from collections import deque

from decimal import *

import queue



input = sys.stdin.readline



def inputInt(): return int(eval(input()))

def inputMap(): return list(map(int, input().split()))

def inputList(): return list(map(int, input().split()))

def inputStr(): return input()[:-1]



inf = float('inf')

mod = 1000000007



#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-



def main():

	N = inputInt()

	A = inputList()



	A.sort()

	A = A[::-1]

	ans = 0

	maxs = 0

	cnt = 0

	fst = True



	ansans = []

	pgt = queue.Queue()

	for i,val in enumerate(A):

		if i == 0:

			pgt.put(val)

		else:

			tmp = pgt.get()

			ansans.append(tmp)



			pgt.put(val)

			pgt.put(val)

	print((sum(ansans)))





#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

#-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

if __name__ == "__main__":

	main()

# -*- coding: utf-8 -*-
import sys
import math
from bisect import bisect_left
from bisect import bisect_right
from collections import defaultdict
from heapq import heappop, heappush
import itertools
import random
from collections import deque
from decimal import *
import queue

input = sys.stdin.readline


def inputInt():
    return int(eval(input()))


def inputMap():
    return list(map(int, input().split()))


def inputList():
    return list(map(int, input().split()))


def inputStr():
    return input()[:-1]


inf = float("inf")
mod = 1000000007
# -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
# -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
def main():
    N = inputInt()
    A = inputList()
    A.sort()
    A = A[::-1]
    ans = 0
    maxs = 0
    cnt = 0
    fst = True
    ansans = []
    pgt = queue.Queue()
    for i, val in enumerate(A):
        if i == 0:
            pgt.put(val)
        else:
            tmp = pgt.get()
            ansans.append(tmp)
            pgt.put(val)
            if tmp == val:
                pgt.put(val)
            else:
                pgt.put(val)
    # print(ansans)
    print((sum(ansans)))


# -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
# -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
if __name__ == "__main__":
    main()

# -*- coding: utf-8 -*-
import sys
import math
from bisect import bisect_left
from bisect import bisect_right
from collections import defaultdict
from heapq import heappop, heappush
import itertools
import random
from collections import deque
from decimal import *
import queue

input = sys.stdin.readline


def inputInt():
    return int(eval(input()))


def inputMap():
    return list(map(int, input().split()))


def inputList():
    return list(map(int, input().split()))


def inputStr():
    return input()[:-1]


inf = float("inf")
mod = 1000000007
# -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
# -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
def main():
    N = inputInt()
    A = inputList()
    A.sort()
    A = A[::-1]
    ans = 0
    maxs = 0
    cnt = 0
    fst = True
    ansans = []
    pgt = queue.Queue()
    for i, val in enumerate(A):
        if i == 0:
            pgt.put(val)
        else:
            tmp = pgt.get()
            ansans.append(tmp)
            pgt.put(val)
            pgt.put(val)
    print((sum(ansans)))


# -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
# -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
if __name__ == "__main__":
    main()

-            if tmp == val: -                pgt.put(val) -            else: -                pgt.put(val) -    # print(ansans) +            pgt.put(val)