package main
func Mapd1(st, fn int) map[int]int {
res := map[int]int{}
val := Range(st, fn)
for _, i := range val {
res[i] = 0
}
return res
}
func Mapd2(stx, fnx, sty, fny int) map[int]map[int]int {
res := map[int]map[int]int{}
valx := Range(stx, fnx)
valy := Range(sty, fny)
for _, i := range valx {
res[i] = make(map[int]int)
for _, j := range valy {
res[i][j] = 0
}
}
return res
}
func Mapd3(stx, fnx, sty, fny, stz, fnz int) map[int]map[int]map[int]int {
res := map[int]map[int]map[int]int{}
valx := Range(stx, fnx)
valy := Range(sty, fny)
valz := Range(stz, fnz)
for _, i := range valx {
res[i] = make(map[int]map[int]int)
for _, j := range valy {
res[i][j] = make(map[int]int)
for _, k := range valz {
res[i][j][k] = 0
}
}
}
return res
}
func Mapd4(stx, fnx, sty, fny, stz, fnz, stl, fnl int) map[int]map[int]map[int]map[int]int {
res := map[int]map[int]map[int]map[int]int{}
valx := Range(stx, fnx)
valy := Range(sty, fny)
valz := Range(stz, fnz)
vall := Range(stl, fnl)
for _, i := range valx {
res[i] = make(map[int]map[int]map[int]int)
for _, j := range valy {
res[i][j] = make(map[int]map[int]int)
for _, k := range valz {
res[i][j][k] = make(map[int]int)
for _, l := range vall {
res[i][j][k][l] = 0
}
}
}
}
return res
}
func Range(st, fn int) []int {
ln := fn - st
res := make([]int, ln+1)
for i := 0; i <= ln; i++ {
res[i] = st
st++
}
return res
}