Buggy python submission (verdict: Time Limit Exceeded):
import numpy as np
N = int(input())
h_array = np.array(list(map(int, input().split()))).reshape(-1)


def cost_diff(num, span, given_array):
    diff_val = np.abs(given_array[num] - given_array[num - span])
    return np.array(diff_val).reshape(-1)


dp = [[] for i in range(N)]
diff_ini = cost_diff(1, 1, h_array)

for i in range(N):
    if i == 0:
        dp[0].append(0)
    elif i == 1:
        dp[1].append(min(dp[0] + diff_ini))
    else:
        tmp_1 = dp[i - 1] + cost_diff(i, 1, h_array)
        tmp_2 = dp[i - 2] + cost_diff(i, 2, h_array)
        tmp = min(tmp_1, tmp_2)
        dp[i].append(int(tmp))
print(dp[N - 1][0])


Fixed submission:
N = int(input())
h_array = list(map(int, input().split()))

dp = [10 ** 5 for i in range(N)]

for i in range(N):
    if i == 0:
        dp[0] = 0
    elif i == 1:
        dp[1] = dp[0] + abs(h_array[1] - h_array[0])
    else:
        dp[i] = min(dp[i - 1] + abs(h_array[i] - h_array[i - 1]), dp[i - 2] + abs(h_array[i] - h_array[i - 2]))
print(dp[N - 1])

Buggy python submission (verdict: Runtime Error):
import numpy as np
N = int(input())
h_array = np.array(list(map(int, input().split()))).reshape(-1)


def cost_diff(num, span, given_array):
    diff_val = np.abs(given_array[num] - given_array[num - span])
    return diff_val


dp = [[] for i in range(N)]
diff_ini = cost_diff(1, 1, h_array)

for i in range(N):
    if i == 0:
        dp[0].append(0)
    elif i == 1:
        dp[1].append(min(dp[0] + diff_ini))
    else:
        tmp_1 = dp[i - 1] + cost_diff(i, 1, h_array)
        tmp_2 = dp[i - 2] + cost_diff(i, 2, h_array)
        tmp = np.min(tmp_1, tmp_2)
        dp[i].append(tmp)
print(dp[N - 1][0])


Fixed submission:
N = int(input())
h_array = list(map(int, input().split()))

dp = [10 ** 5 for i in range(N)]

for i in range(N):
    if i == 0:
        dp[0] = 0
    elif i == 1:
        dp[1] = dp[0] + abs(h_array[1] - h_array[0])
    else:
        dp[i] = min(dp[i - 1] + abs(h_array[i] - h_array[i - 1]), dp[i - 2] + abs(h_array[i] - h_array[i - 2]))
print(dp[N - 1])

Buggy python submission (verdict: Time Limit Exceeded):
import numpy as np
N = int(input())
h_array = np.array(list(map(int, input().split()))).reshape(-1)


def cost_diff(num, span, given_array):
    diff_val = np.abs(given_array[num] - given_array[num - span])
    return diff_val


dp = [[] for i in range(N)]
diff_ini = cost_diff(1, 1, h_array)

for i in range(N):
    if i == 0:
        dp[0].append(0)
    elif i == 1:
        dp[1].append(min(dp[0] + diff_ini))
    else:
        tmp_1 = list(dp[i - 1] + cost_diff(i, 1, h_array))
        tmp_2 = list(dp[i - 2] + cost_diff(i, 2, h_array))
        tmp = tmp_1 + tmp_2
        dp[i].append(min(tmp))
print(dp[N - 1][0])

Fixed submission:
N = int(input())
h_array = list(map(int, input().split()))

dp = [10 ** 5 for i in range(N)]

for i in range(N):
    if i == 0:
        dp[0] = 0
    elif i == 1:
        dp[1] = dp[0] + abs(h_array[1] - h_array[0])
    else:
        dp[i] = min(dp[i - 1] + abs(h_array[i] - h_array[i - 1]), dp[i - 2] + abs(h_array[i] - h_array[i - 2]))
print(dp[N - 1])

Buggy python submission (verdict: Time Limit Exceeded):
import numpy as np
N = int(input())
h_array = np.array(list(map(int, input().split()))).reshape(-1)


def cost_diff(num, span, given_array):
    diff_val = np.abs(given_array[num] - given_array[num - span])
    return diff_val


dp = [[] for i in range(N)]
diff_ini = cost_diff(1, 1, h_array)

for i in range(N):
    if i == 0:
        dp[0].append(0)
    elif i == 1:
        dp[1].append(dp[0][0] + diff_ini)
    else:
        for v in dp[i - 1]:
            dp[i].append(v + cost_diff(i, 1, h_array))

        for v in dp[i - 2]:
            dp[i].append(v + cost_diff(i, 2, h_array))

print(min(dp[N - 1]))


Fixed submission:
N = int(input())
h_array = list(map(int, input().split()))

dp = [10 ** 5 for i in range(N)]

for i in range(N):
    if i == 0:
        dp[0] = 0
    elif i == 1:
        dp[1] = dp[0] + abs(h_array[1] - h_array[0])
    else:
        dp[i] = min(dp[i - 1] + abs(h_array[i] - h_array[i - 1]), dp[i - 2] + abs(h_array[i] - h_array[i - 2]))
print(dp[N - 1])