func NewS(inits []int64) []int64 {
	n := 1
	for n < len(inits) {
		n *= 2
	}
	t := make([]int64, n*2-1)
	for i := 0; i < len(inits); i++ {
		t[n-1+i] = inits[i]
	}
	d := n - len(inits)
	for i := 0; i < d; i++ {
		t[n-1+len(inits)+i] = math.MaxInt64
	}
	for i := n - 2; i >= 0; i-- {
		min, v := t[i*2+1], t[i*2+2]
		if v < min {
			min = v
		}
		t[i] = min
	}
	return t
}
NewS returns the initialization segment tree value of the slice
package segment
import (
	"math"
)
func New(n int) []int64 {
	if n&(n-1) != 0 {
		return nil
	}
	t := make([]int64, n*2-1)
	for i := range t {
		t[i] = math.MaxInt64
	}
	return t
}