package main
import "fmt"
func main(){
input := []int{0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1}
output := AnswerOfWater(input)
fmt.Println(output)
}
func AnswerOfWater(values []int) int {
sum := 0
bucket := 1
level := 0
left := false
for bucket > 0 {
bucket = 0
water := 0
left = false
for _, value := range values {
if value - level > 0 {
left = true
bucket += water
water = 0
} else if left {
water++
}
}
sum += bucket
level++
}
return sum
}
cGFja2FnZSBtYWluCmltcG9ydCAiZm10IgoKZnVuYyBtYWluKCl7CglpbnB1dCA6PSBbXWludHswLCAxLCAwLCAyLCAxLCAwLCAxLCAzLCAyLCAxLCAyLCAxfQoJb3V0cHV0IDo9IEFuc3dlck9mV2F0ZXIoaW5wdXQpCglmbXQuUHJpbnRsbihvdXRwdXQpCn0KCmZ1bmMgQW5zd2VyT2ZXYXRlcih2YWx1ZXMgW11pbnQpIGludCB7CglzdW0gOj0gMAoJYnVja2V0IDo9IDEKCWxldmVsIDo9IDAKCWxlZnQgOj0gZmFsc2UKCWZvciBidWNrZXQgPiAwIHsKCQlidWNrZXQgPSAwCgkJd2F0ZXIgOj0gMAoJCWxlZnQgPSBmYWxzZQoJCWZvciBfLCB2YWx1ZSA6PSByYW5nZSB2YWx1ZXMgewoJCQlpZiB2YWx1ZSAtIGxldmVsID4gMCB7CgkJCQlsZWZ0ID0gdHJ1ZQoJCQkJYnVja2V0ICs9IHdhdGVyCgkJCQl3YXRlciA9IDAKCQkJfSBlbHNlIGlmIGxlZnQgewoJCQkJd2F0ZXIrKwoJCQl9CgkJfQoJCXN1bSArPSBidWNrZXQKCQlsZXZlbCsrCgl9CglyZXR1cm4gc3VtCn0=