pythondef solve(N, K, heights):
heights += [INF] * K
costs = [INF] * (N + K)
costs[0] = 0
for i in range(N - 1):
for k in range(1, K + 1):
costs[i + k] = min(
costs[i + k],
costs[i] + abs(heights[i + k] - heights[i]))
return costs[N - 1]pythondef solve(N, K, heights):
heights += [INF] * K
costs = [INF] * (N + K)
costs[0] = 0
for i in range(N - 1):
for k in range(1, K + 1):
newcost = costs[i] + abs(heights[i + k] - heights[i])
if newcost < costs[i + k]:
costs[i + k] = newcost
return costs[N - 1]pythondef solve(N, K, heights):
costs = [0] * N
costs[0] = 0
for i in range(1, N):
costs[i] = min(
costs[j] + abs(heights[i] - heights[j])
for j in range(max(i - K, 0), i)
)pythondef solve(N, K, heights):
costs = [None] * N
costs[0] = 0
def get_cost(i):
if costs[i] != None:
return costs[i]
c = min(
get_cost(j) + abs(heights[i] - heights[j])
for j in range(max(i - K, 0), i)
)
costs[i] = c
return c
return get_cost(N - 1)