// Slower C++ solution:
#include <iostream>

#include <queue>

#include <set>

#include <list>

#include <deque>

#include <vector>

#include <map>

#include <utility>

#include <algorithm>

#include <cmath>

#include <cstdio>

#include <string>

#include <iterator>

#define ll long long

#define pb push_back

#define pf push_front

#define ppb pop_back

#define ppf pop_front

#define powr(x,n,p) for(int axy=0 ; axy<p ; axy++){x=x*n;}

#define YES printf("YES\n")

#define Yes printf("Yes\n")

#define yes printf("yes\n")

#define NO printf("NO\n")

#define No printf("No\n")

#define no printf("no\n")

#define nl printf("\n")

#define fr0(n,q) for(q=0 ; q<n ; q++)

#define fr1(n,q) for(q=1 ; q<=n ; q++)

#define mp make_pair

#define scl(x) scanf("%lld",&x)

#define sci(x) scanf("%d",&x)

#define lst(x) x[x.size()-1]

#define llst(x) x[x.size()-2]

#define md 1000000007

#define check(x,y) (x&(1<<y))

#define set(x,y) x=x|(1<<y)

using namespace std;

int dp[100005];

int arr[100005];

int n;

int solve(int x){

	if(x>=n) return 0;

	if(dp[x]!=-1) return dp[x];

	int ret;

	if(x==n-1) ret=abs(arr[x+1]-arr[x])+solve(x+1);

	else ret=min(abs(arr[x+1]-arr[x])+solve(x+1),abs(arr[x+2]-arr[x])+solve(x+2));

	return dp[x]=ret;

}

int main()

{

	int i;

	cin>>n;

	for(i=0 ; i<100005 ; i++) dp[i]=-1;

	for(i=1 ; i<=n ; i++) cin>>arr[i];

	cout<<solve(1);

	nl;

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 1.403059249671722x):
/* In the name of ALLAH */

#include<bits/stdc++.h>

#include<iostream>

#include<vector>

#include<string>



// MAXIMUM and MINIMUM elements

#define mx_ari(a)   *max_element(a , a+sizeof(a)/4)

#define mn_ari(a)   *min_element(a , a+sizeof(a)/4)

#define mx_arl(a)   *max_element(a , a+sizeof(a)/8)

#define mn_arl(a)   *min_element(a , a+sizeof(a)/8)

#define mx_vec(v)   *max_element(v.begin() , v.end())

#define mn_vec(v)   *min_element(v.begin() , v.end())

// COUNT the occurence of an element

#define cnt_ari(a,b)   count(a , a+sizeof(a)/4 , b)

#define cnt_arl(a,b)   count(a , a+sizeof(a)/8 , b)

#define cnt_vec(v,b)   count(v.begin() , v.end() , b)

// INPUTs

#define sci(a)        scanf("%d",&a)

#define scii(a,b)     scanf("%d %d",&a,&b)

#define sciii(a,b,c)  scanf("%d %d %d",&a,&b,&c)

#define scl(a)        scanf("%lld",&a)

#define scll(a,b)     scanf("%lld %lld",&a,&b)

#define sclll(a,b,c)  scanf("%lld %lld %lld",&a,&b,&c)

#define scf(a)        scanf("%f",&a)

#define scff(a,b)     scanf("%f %f",&a,&b)

#define scfff(a,b,c)  scanf("%f %f %f",&a,&b,&c)

#define scd(a)        scanf("%ld",&a)

#define scdd(a,b)     scanf("%lf %lf",&a,&b)

#define scddd(a,b,c)  scanf("%lf %lf %lf",&a,&b,&c)

// OUTPUTs

#define pri(a)        printf("%d ",a)

#define prii(a,b)     printf("%d %d ",a,b)

#define priii(a,b,c)  printf("%d %d %d ",a,b,c)

#define prl(a)        printf("%lld ",a)

#define prll(a,b)     printf("%lld %lld ",a,b)

#define prlll(a,b,c)  printf("%lld %lld %lld ",a,b,c)

#define prd(a)        printf("%.4lf ",a)

#define prdd(a,b)     printf("%.4lf %.4lf ",a,b)

#define prddd(a,b,c)  printf("%.4lf %.4lf %.4lf ",a,b,c)

#define prf(a)        printf("%.4f ",a)

#define prff(a,b)     printf("%.4f %.4f ",a,b)

#define prfff(a,b,c)  printf("%.4f %.4f %.4f ",a,b,c)

// LOOPs

#define foi(i,n)      for(int i=0;i<n;i++)

#define fol(i,n)      for(long long int i=0;i<n;i++)

#define fod(i,n)      for(double i=0;i<n;i++)

#define fof(i,n)      for(float i=0;i<n;i++)

// NEWLINEs

#define nwl           << "\n"

#define nl            printf("\n");

// PAIRs and PUSHbacks

#define mp            make_pair

#define pb            emplace_back

// IMPORTANTs

#define ll          long long

#define ull         unsigned long long int

#define mod         1000000007

#define lcm(a,b)     (a*b) / __gcd(a,b)



using namespace std;





int cost[100010];

int chi(int i , int n , int a[]){

   if(i < 0){

      return cost[0];

   }



   cost[i] = min(abs(a[i] - a[i+1])+cost[i+1] , abs(a[i] - a[i+2])+cost[i+2]);

   return chi(i-1 , n , a);

}



int main()

{

   int n;

   cin >> n;

   int a[n];

   foi(i,n){

      cin >> a[i];

   }



   cost[n-1] = 0;

   cost[n-2] = abs(a[n-1] - a[n-2]);



   cout << chi(n-3 , n , a);



   return 0;

}