先找两端点 也就是说
如果原数组是单增或单减的 结果就是0
然后统计每个位置左侧最大的数和右侧最大的数
当前位置的储水量为min(leftmax,rightmax)-自己的高度
n = int(input())
l = [int(val) for val in input().split(' ')]
startx = -1
endx = -1
for i in range(len(l)-1):
if l[i] > l[i+1]:
startx = i + 1
break
for i in range(len(l)-1,0,-1):
if l[i] > l[i-1]:
endx = i
break
if startx == -1 or endx == -1:
print(0)
else:
l = l[startx-1:endx+1]
max_l = []
max_r = []
temp_l = 0
temp_r = 0
for i in range(len(l)):
temp_l = max(temp_l,l[i])
max_l.append(temp_l)
temp_r = max(temp_r,l[-1-i])
max_r.append(temp_r)
max_r = max_r[::-1]
res = 0
for i in range(1,len(l)-1):
res += min(max_r[i],max_l[i]) - l[i]
print(res)