package main

func maxWater( arr []int ) int64 {
    // write code here
    // 使用双指针分别标记当前左右侧木板的高度
    // 如果左侧木板小于右侧木板,那么对应桶的容量不会超过左侧木板高度
    n, ans := len(arr), 0
    left, right, leftMax, rightMax := 0, n-1, arr[0], arr[n-1]
    for left < right {
        if leftMax < rightMax {
            ans += leftMax - arr[left]
            left++
            leftMax = max(leftMax, arr[left])
        } else {
            ans += rightMax - arr[right]
            right--
            rightMax = max(rightMax, arr[right])
        }
    }
    return int64(ans)
}
func max(a, b int) int { if a < b { return b }; return a }
func min(a, b int) int { if a < b { return a }; return b }