#include<stdio.h>

void qsort(int a[],int left,int right){
	
	int p=(left+right)/2;
	int pivot=a[p];
	int i,temp;
	if(left<right){
		p=left;
		pivot=a[p];
		for(i=left+1;i<=right;i++){
			if(a[i]<pivot){
				p++;
				temp=a[i];a[i]=a[p];a[p]=temp;//swap
			}
		}
		temp=a[left];a[left]=a[p];a[p]=temp;//swap
		qsort(a,left,p-1);
		qsort(a,p+1,right);
	}

}

int check(int a[],int b[],int n){
	int i;
	for(i=0;i<n;i++){
		if(a[i]!=b[i])return -1;
	}
	return 1;
}

int main(void){
	int n,i,j,mini,minj,min,cost=0,w;
	int a[1000],b[1000];
	scanf("%d",&n);
	for(i=0;i<n;i++)scanf("%d",&a[i]);
	for(i=0;i<n;i++)b[i]=a[i];
	
	qsort(b,0,n-1);
	
	
	while(check(a,b,n)==-1){
		min=20000;
		for(i=0;i<n;i++){
			for(j=0;a[i]!=b[j] && j<n;j++);
			if(j==n || j==i)continue;
			w=a[i]+a[j];
			if(min>w){
				min=w;
				mini=i;minj=j;
			}
		}
		cost+=(a[mini]+a[minj]);
		//printf("%d %d \n",mini,minj);
		int temp=a[mini];
		a[mini]=a[minj];
		a[minj]=temp;
	}
	printf("%d\n",cost);
	return 0;
}