/*
TASK: ots
LANG: C++
*/
#include<iostream>
using namespace std;
class ots
{
  public:
      int start,end;
      int size;
};
int o[1000000],n;
ots a[1000000];
bool flag[1000000];
bool f(ots x,ots y)
{
     return x.size<y.size;
}
int maxx;
void init()
{
 int max=0;
 cin>>n;
 for(int i=0;i<n;i++)
 {
  cin>>o[i];
  if(o[i]>max)
   max=o[i];
  flag[o[i]]=true;
 }
 sort(o,o+n);
 for(int i=0;i<n-1;i++)
 {
   a[i].start=o[i];
   a[i].end=o[i+1];
   a[i].size=a[i].end-a[i].start;
 }
 sort(a,a+n,f);
 maxx=max;
}
bool isused()
{
  for(int i=0;i<=maxx;i++)
  {
   if(flag[i]==true)
     return true;
  }
  return false;
}
int main()
{
 init();
 int l=0,i=0;
 while(isused())
 {
  if(flag[a[i].start]==1 || flag[a[i].end]==1)
  {
   l+=a[i].size;
   flag[a[i].start]=flag[a[i].end]=0;
  }
  i++;
 }
 cout<<l<<endl;
 return 0;
}
