UA4QW2NDITNZ3YNWPOHI6EOT3QQQJAMTM5VLTVD53Q2JMILPCUAAC
func (r routes) genRoutes(s seen, root string) int {
func solveSecond(r routes) int {
s := seen{}
return r.genRoutes(s, "start", seenTooMuch)
}
func seenTooMuch(s seen, root string) bool {
if s[root] >= 2 {
return true
}
if s[root] == 0 {
return false
}
if s[root] == 1 {
for k, v := range s {
if k == root {
continue
}
if v > 1 {
return true
}
}
}
return false
}
func isSeen(s seen, root string) bool {
if s[root] > 0 {
return true
}
return false
}
func (r routes) genRoutes(s seen, root string, fn condFn) int {