var a,b:array[1..11000] of longint;
i,j,n,p,t,x,y,min,meth,ans:longint;
num:array[1..20000] of integer;
begin
readln(n);
fillchar(num,sizeof(num),0);
for i:=1 to n do
begin
read(t);
inc(num[t]);
b[i]:=1000000000
end;
p:=0;
for i:=1 to 20000 do
a[i]:=100000000;
for i:=1 to 20000 do
for j:=1 to num[i] do
begin
inc(p);
a[p]:=i
end;
x:=1;y:=1;ans:=0;
for i:=1 to n-1 do
begin
min:=maxlongint;
if (a[x]+a[x+1]<min) then begin
min:=a[x]+a[x+1];meth:=1
end;
if (a[x]+b[y]<min) then begin
min:=a[x]+b[y];meth:=2
end;
if (b[y]+b[y+1]<min) then begin
min:=b[y]+b[y+1];meth:=3
end;
b[i]:=min;
inc(ans,min);
if meth=1 then inc(x,2);
if meth=2 then begin inc(x);inc(y) end;
if meth=3 then inc(y,2)
end;
writeln(ans);
end.
类似基数排序,+贪心。