/*
TASK: ots
LANG: C++
*/
//Rumen Hristov Hristov

#include <cstdio>
#include <algorithm>
using namespace std;

int n;
int a[1048576];
int used[1048576];
int dp[1048576];

void read()
{
    scanf ("%d",&n);
    
    int i;
    
    for (i=1;i<=n;i++)
    {
        scanf ("%d",&a[i]);
    }
}

void solve()
{
    int i;
    int q,w;
    
    sort ( a + 1 , a + n + 1 );

    if ( n == 2 )
    {
        printf ("%d\n",a[2]-a[1]);
        return ;
    }
    
    dp[1] = a[2]-a[1];
    used[1] = 1;
    dp[2] = dp[1];
    if ( a[4]-a[3] <= a[3]-a[2] )
    {
        used[3] = 1;
        dp[ 3 ] = (a[4]-a[3]) + dp[1];
    }
    else
    {
        dp[3] = (a[3]-a[2]) + dp[1];
    }
    
    for (i=4;i<n;i++)
    {
        q = a[i]-a[i-1];
        if ( used[i-3] == 0 )
            q += a[2]-a[1];
            
        
        w = (a[i+1]-a[i]) + (a[i-1]-a[i-2]);
        
        
        if ( w <= q )
        {
            used[i] = 1;
            dp[i] = w;
        }
        else
            dp[i] = q;
    }
    
    printf ("%d\n",dp[n-1] + (a[n]-a[n-1]));
}

int main()
{
    read();
    solve();
    
    return 0;
}
