N = int(eval(input()))

h = list(map(int, input().split()))

dp = [float("inf") for _ in range(N)]

dp[0] = 0

for i in range(N - 1):

	dp[i + 1] = min(dp[i + 1], dp[i] + abs(h[i + 1] - h[i]))

	if i < N - 2:

		dp[i + 2] = min(dp[i + 2], dp[i] + abs(h[i + 2] - h[i]))

print((dp[N - 1]))

N = int(eval(input()))

h = list(map(int, input().split()))

list = [float("inf") for _ in range(N)]

# 一般に足場 i までの最小コストを求める関数を作り、それは足場 i-1, i-2 までの最小コストがわかっていればいい

def cost(i):

	if i == 0:

		list[i] = 0

	list[i] = min(list[i], list[i - 1] + abs(h[i] - h[i - 1]))

	if i > 1:

		list[i] = min(list[i], list[i - 2] + abs(h[i] - h[i - 2]))

for i in range(N):

	cost(i)

print((list[N - 1]))

N = int(eval(input()))
h = list(map(int, input().split()))
dp = [float("inf") for _ in range(N)]
dp[0] = 0
for i in range(N - 1):
    dp[i + 1] = min(dp[i + 1], dp[i] + abs(h[i + 1] - h[i]))
    if i < N - 2:
        dp[i + 2] = min(dp[i + 2], dp[i] + abs(h[i + 2] - h[i]))
print((dp[N - 1]))

N = int(eval(input()))
h = list(map(int, input().split()))
list = [float("inf") for _ in range(N)]
# 一般に足場 i までの最小コストを求める関数を作り、それは足場 i-1, i-2 までの最小コストがわかっていればいい
def cost(i):
    if i == 0:
        list[i] = 0
    list[i] = min(list[i], list[i - 1] + abs(h[i] - h[i - 1]))
    if i > 1:
        list[i] = min(list[i], list[i - 2] + abs(h[i] - h[i - 2]))


for i in range(N):
    cost(i)
print((list[N - 1]))

-dp = [float("inf") for _ in range(N)] -dp[0] = 0 -for i in range(N - 1): -    dp[i + 1] = min(dp[i + 1], dp[i] + abs(h[i + 1] - h[i])) -    if i < N - 2: -        dp[i + 2] = min(dp[i + 2], dp[i] + abs(h[i + 2] - h[i])) -print((dp[N - 1])) +list = [float("inf") for _ in range(N)] +# 一般に足場 i までの最小コストを求める関数を作り、それは足場 i-1, i-2 までの最小コストがわかっていればいい +def cost(i): +    if i == 0: +        list[i] = 0 +    list[i] = min(list[i], list[i - 1] + abs(h[i] - h[i - 1])) +    if i > 1: +        list[i] = min(list[i], list[i - 2] + abs(h[i] - h[i - 2])) + + +for i in range(N): +    cost(i) +print((list[N - 1]))