#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# max water
# @param arr int整型一维数组 the array
# @return long长整型
#
class Solution:
    def maxWater(self , arr: List[int]) -> int:
        # write code here
        n = len(arr)
        if n==0:
            return 0
        maxl, maxr, ans, l, r = 0, 0, 0, 0, n-1
        while l<r:
            maxl, maxr = max(maxl,arr[l]), max(maxr,arr[r])
            if maxr>maxl:#从两侧逐渐收缩到右边最高的柱子!
                ans += maxl-arr[l]
                l += 1
            else:
                ans += maxr-arr[r]
                r -= 1
        return ans