//
#include<iostream>
#include<stdlib.h>
using namespace std;
#define MAXN 1000
int time[MAXN+1];
int cmp(const void *a,const void *b)

{
return *(int*)a-*(int*)b;
}
int main()

{
int N,i,totaltime;
cin>>N;
for(i=0;i<N;i++)
cin>>time[i];
qsort(time,N,sizeof(time[0]),cmp);
totaltime=0;
for(i=N-1;i>2;i-=2)
{
if(2*time[1]<time[0]+time[i-1])
totaltime+=time[0]+2*time[1]+time[i];
else totaltime+=2*time[0]+time[i-1]+time[i];
}
if(i==0) totaltime+=time[0];
if(i==1) totaltime+=time[1];
if(i==2) totaltime+=time[0]+time[1]+time[2];
cout<<totaltime<<endl;
return 0;
}

