lc-go/solutions/7/q799/solution.go
2026-03-01 13:47:13 +09:00

23 lines
453 B
Go

package q799
func champagneTower(poured, query_row, query_glass int) float64 {
buf := [100]float64{float64(poured)}
for r := range query_row + 1 {
var spill float64 = 0
for c := range r + 1 {
if r == query_row && c == query_glass {
return max(buf[c], 1)
}
if buf[c] > 1 {
buf[c] = (buf[c] - 1) / 2
buf[c], spill = buf[c]+spill, buf[c]
} else {
buf[c], spill = spill, 0
}
}
}
return 0
}
var _ = champagneTower