'use strict'
function main(input) {
  // お決まりの処理
  const tmp = input.split('\n');
  const N = parseInt(tmp[0], 10);
  const h = tmp[1].split(' ').map((elem) => parseInt(elem, 10));
  
  // 動的計画法にお決まりの必要な配列を作って満たす処理
  let dp = new Array(N).fill(Infinity);
  // 最初なので0
  dp[0] = 0;
  // 原則はdpと他の条件を比較して小さいほうが勝ち
  for(let i = 1; i < N; i++){
  	dp[i] = Math.min(dp[i],dp[i-1] + Math.abs(h[i] - h[i - 1])); 
    if(i > 1){
      dp[i] = Math.min(dp[i],dp[i-2] + Math.abs(h[i] - h[i - 2])); 
    }
  } 
  console.log(dp[N - 1]);
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
