23 lines
453 B
Go
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
|