/*
    author: lone_star
    I love coding, particle physics and chilled beer.
*/

#include <bits/stdc++.h>
#define ll long long int
#define pb push_back
using namespace std;


long long mod(ll x, ll M){
    return ((x%M + M)%M);
}
long long add(ll a, ll b, ll m){
    return mod(mod(a,m)+mod(b,m),m);
}
long long mul(ll a, ll b, ll m){
    return mod(mod(a,m)*mod(b,m),m);
}


bool prime(ll s)
{
    if (s <= 1)  return false;
    if (s <= 3)  return true;
    if (s%2 == 0 || s%3 == 0) return false;

    for (ll i=5; i*i<=s; i=i+6)
        if (s%i == 0 || s%(i+2) == 0)
            return false;

    return true;
}

ll power(ll x, ll y)
{
    ll res = 1;


    while (y > 0) 
    {
        if (y & 1)
            res = (res * x);

        y = y >> 1;
        x = (x * x);
    }
    return res;
}


// ll power(ll x, ll y)
// {
//     ll ans = 1;
//     for(ll i=1;i<=y;++i)
//         ans*=x;
//     return ans;
// }


ll power(ll x, ll y, ll p)
{
    ll res = 1;

    x = x % p;

    while (y > 0) 
    {
        if (y & 1)
            res = (res * x) % p;

        y = y >> 1;
        x = (x * x) % p;
    }
    return res;
}

ll gcd(ll a, ll b)
{
    if(b==0)
        return a;
    else
        return gcd(b,a%b);
}

bool square(long double x)
{
    long double sr = sqrt(x);

    return ((sr - floor(sr)) == 0);
}

ll dp[2005][2005];

ll calc(ll arr[], ll i, ll j, ll n)
{
    // cout<<i<<" "<<j<<"\n";
    if(i>=j)
        return 0;
    if(dp[i][j]!=-1)
        return dp[i][j];
    dp[i][j] = min(calc(arr,i+1,j,n),calc(arr,i,j-1,n)) + arr[j]-arr[i];
    return dp[i][j];
}

// ll calc(ll arr[], ll n)
// {
//     for(ll i=0;i<=n;++i)
//         dp[i][0]=0;
//     for(ll i=0;i<=n;++i)
//         dp[0][i]=0;
//     for(ll i=0;i<n;++i)
//     {
//         for(ll j=1;j<n;++j)
//         {
//             dp[i][j] = dp[i][j-1] + arr[j]-arr[i] ;
//         }
//     }
//     return dp[n-1][n-1];
// }

void solve()
{
    ll n;
    cin>>n;
    ll arr[n];
    map<ll,ll> cn;
    for(ll i=0;i<n;++i)
    {
        cin>>arr[i];
        cn[arr[i]]++;
    }
    // ll ele,pos=0;
    // for(auto it : cn)
    // {
    //     if(it.second>=pos)
    //     {
    //         ele=it.first;
    //         pos=it.second;
    //     }
    // }
    sort(arr,arr+n);
    memset(dp,-1,sizeof(dp));
    // for(ll i=0;i<n;++i)
    //     cout<<arr[i]<<" ";
    // cout<<"\n";
    ll ans = calc(arr,0,n-1,n);
    // vector<ll> nums;
    // nums.pb(0);
    // nums.pb(n/2);
    // nums.pb(n/2-1);
    // nums.pb(n-1);
    // map<ll,ll> mp;
    // if(n<10000)
    // {
    //     // for(ll i=0;i<n;++i)
    //     // {
    //     //     ll mid = i;
    //     //     memset(dp,-1,sizeof(dp));
    //     //     ll tempans = calc(arr,mid,mid,n);
    //     //     cout<<tempans<<" ";
    //     //     ans=min(ans,tempans);
    //     //     mp[ans]++;
    //     //     if(mp.begin()->second>400)
    //     //         break;
    //     //     // cout<<((mp.begin()->first));
    //     // }

    //     ll mid = 1;
    //     memset(dp,-1,sizeof(dp));
    //     ll tempans = calc(arr,mid,mid,n);
    //     // cout<<tempans<<" ";
    //     ans=min(ans,tempans);
    //     for(ll i=0;i<n;++i)
    //     {
    //         for(ll j=0;j<n;++j)
    //             cout<<dp[i][j]<<" ";
    //         cout<<"\n";
    //     }
    // }
    // else
    // {
    //     ll j=n-1;
    //     for(ll i=0;i<n/10;++i)
    //     {
    //         ll mid = i;
    //         memset(dp,-1,sizeof(dp));
    //         ll tempans = calc(arr,mid,mid,n);
    //         // cout<<tempans<<" ";
    //         ans=min(ans,tempans);
    //         mid = j;
    //         memset(dp,-1,sizeof(dp));
    //         tempans = calc(arr,mid,mid,n);
    //         // cout<<tempans<<" ";
    //         ans=min(ans,tempans);
    //         mid = i+n/2;
    //         memset(dp,-1,sizeof(dp));
    //         tempans = calc(arr,mid,mid,n);
    //         // cout<<tempans<<" ";
    //         ans=min(ans,tempans);
    //         mid = n/2-i;
    //         memset(dp,-1,sizeof(dp));
    //         tempans = calc(arr,mid,mid,n);
    //         // cout<<tempans<<" ";
    //         ans=min(ans,tempans);
    //         j--;
    //     }

    // }
    // ll mid = 1;
    // memset(dp,-1,sizeof(dp));
    // ll ans = calc(arr,mid,mid,n);
    // // ll ans = calc(arr,n);
    // for(ll i=0;i<n;++i)
    // {
    //     for(ll j=0;j<n;++j)
    //         cout<<dp[i][j]<<" ";
    //     cout<<"\n";
    // }
    cout<<ans<<"\n";
    // list<ll> lst;
    // ll i=mid-1,j=mid+1;
    // ll l=mid,r=mid;
    // ll ans = 0;
    // while(i>=0 and j<n)
    // {
    //     ll mine = arr[l];
    //     ll maxe = arr[r];
    //     ll dif1 = maxe-arr[i];
    //     ll dif2 = arr[j]-mine;
    //     if(dif1<dif2)
    //     {
    //         l--;
    //         ans+=dif1;
    //         i--;
    //     }
    //     else
    //     {
    //         r++;
    //         ans+=dif2;
    //         j++;
    //     }
    //     cout<<ans<<" ";
    // }
    // while(i>=0)
    // {
    //     ans+=arr[r]-arr[i];
    //     i--;
    // }
    // while(j<n)
    // {
    //     ans+=arr[j]-arr[l];
    //     j++;
    // }
    // cout<<ans<<"\n";
}



int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

    ll t=1;
    // cin>>t;
    
    ll z=1;
    while(t--)
    {
        // cout<<"Case #"<<z<<": ";
        solve();
        z++;
    }
}