
/*
TASK: ots
LANG: C++
*/
#include <cstdio>
#include <algorithm>
using namespace std;
long int n;
long int Points[1000000];
char last;
void init()
{scanf("%lu",&n);
 for(long int i=0;i<n;i++)
     {scanf("%lu",&Points[i]);
      }
}
int main()
{init();
 sort(&Points[0],&Points[n]);
 long long int min_sum;
 if(n==2) {min_sum=Points[1]-Points[0]; printf("%lu\n",min_sum); return 0;}
 if(n==3) {min_sum=Points[1]-Points[0] + Points[2]-Points[1]; printf("%lu\n",min_sum); return 0;}
 if(n==4) {min_sum=Points[1]-Points[0] + Points[3]-Points[2]; printf("%lu\n",min_sum); return 0;}
 if(n==5) {min_sum=Points[1]-Points[0] + Points[4]-Points[3];
           long int a=Points[2]-Points[1];
           long int b=Points[3]-Points[2];
           if(a<b) min_sum+=a;
           else min_sum+=b;
           printf("%lu\n",min_sum); return 0;}
           
 min_sum=Points[1]-Points[0];
 min_sum+=Points[n-1]-Points[n-2];
 n-=2;long int i;
 for( i=2;i<n-1;i++)
     {long long int a,b,c;
      a=Points[i]-Points[i-1];
      b=Points[i+1]-Points[i];
      c=Points[i+2]-Points[i+1];
      if(b<(a+c)) {min_sum+=b;i++;}
      else {min_sum+=a+c;i+=2;}
      }
 if(i==n-1) {long int a=Points[i]-Points[i-1];
             long int b=Points[i+1]-Points[i];
             if(a<b) min_sum+=a;
             else min_sum+=b;
             }
 printf("%lu\n",min_sum);
 return 0;
}
