/*
TASK: ots
LANG: C++
*/
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
int u[1000000];
int strcmpp(char *x, char *y)
{
     if (strlen((char *)x)>strlen((char *)y)) return 1;
     if (strlen((char *)x)<strlen((char *)y)) return 0;
     return (strcmp((char *)x,(char *)y));
}
int sort_function( const void *a, const void *b)
{
   return( strcmpp((char *)a,(char *)b) );
}
  int sortt(const void *a, const void *b)
{
    //if ((int *)a>(int *)b) return 1;
    return 0;
}
char list[1000000][10];// = {"5", "4", "3", "21", "2", "6", "1"}; 
long long int toint(string a)
{
    long long int i,x=0,d=1,l;
    l=a.size()-1;
    for (i=l; i>=0; i--)
    {
        d*=10;
        x+=(int)(a[i]-'0')*d/10;
    }
    return x;
}
long long int minn(long long int a, long long int b)
{
     if (a<b) return a;
     return b;
}
int main()
{
   long long int n;
   cin >> n;
   int i,x;
   for (i=0; i<n; i++)
    cin >> list[i];
   qsort((void *)list, n, sizeof(list[0]), sort_function);
//   for (x = 0; x < n; x++)
//      printf("%s\n", list[x]);                       
      
   unsigned long long int sum=0;
   string s=list[1], ss=list[0];
   if (n==2)
   {
            cout << toint(list[1])-toint(list[0]) << '\n';
            return 0;
   }
   sum=toint(list[1])-toint(list[0])+toint(list[n-1])-toint(list[n-2]);
   u[0]=2;
   u[n-1]=1;
   u[1]=1;
   u[n-2]=2;
   //cout << sum << endl;
   for (i=1; i<n-1; i++)
   if (u[i]==0)
   {
       if(toint(list[i])-toint(list[i-1])<toint(list[i+1])-toint(list[i]))
       {
               sum+=toint(list[i])-toint(list[i-1]);
       }
       else
       {
               sum+=toint(list[i+1])-toint(list[i]);
               u[i+1]=1;
       }
       //cout << i << ' ' << sum << endl;
   }
   cout << sum << '\n';
   return 0;
}
/*

int main()
{
    v.push_back(5);
    v.push_back(4);
    v.push_back(3);

    return 0;
}

*/
