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.
类似基数排序,+贪心。