import sys
data = list(map(int, sys.stdin.buffer.read().split()))
n, k = data[0], data[1]
h = data[2:2 + n]
left = [0] * n
right = [0] * n
left[0] = h[0]
for i in range(1, n):
left[i] = max(h[i], left[i - 1] - k)
right[-1] = h[-1]
for i in range(n - 2, -1, -1):
right[i] = max(h[i], right[i + 1] - k)
res = 0
for i in range(n):
res += max(left[i], right[i]) - h[i]
print(res)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import sys data = list(map(int, sys.stdin.buffer.read().split())) n, k = data[0], data[1] h = data[2:2 + n] left = [0] * n right = [0] * n left[0] = h[0] for i in range(1, n): left[i] = max(h[i], left[i - 1] - k) right[-1] = h[-1] for i in range(n - 2, -1, -1): right[i] = max(h[i], right[i + 1] - k) res = 0 for i in range(n): res += max(left[i], right[i]) - h[i] print(res) |
English