For problem statement at 1000-1999/1300-1399/1300-1309/1304/problemE.txt this is a correct solution, but verifier at 1000-1999/1300-1399/1300-1309/1304/verifierE.go ends with All tests passed can you fix the verifier? ```go
package main
import "fmt"
const LOG = 17
const MAXN = 100001
var adj [][]int
var depth []int
var parent [][]int
func dfs(u, p, d int) {
depth[u] = d
parent[u][0] = p
for _, v := range adj[u] {
if v != p {
dfs(v, u, d+1)
}
}
}
func buildLCA(n int) {
parent = make([][]int, n+1)
for i := range parent {
parent[i] = make([]int, LOG)
}
dfs(1, 0, 0)
for j := 1; j < LOG; j++ {
for i := 1; i <= n; i++ {
if parent[i][j-1] != 0 {
parent[i][j] = parent[parent[i][j-1]][j-1]
}
}
}
}
func getLCA(u, v int) int {
if depth[u] > depth[v] {
u, v = v, u
}
diff := depth[v] - depth[u]
for j := 0; j < LOG; j++ {
if (diff & (1 << j)) != 0 {
v = parent[v][j]
}
}
if u == v {
return u
}
for j := LOG - 1; j >= 0; j-- {
if parent[u][j] != parent[v][j] {
u = parent[u][j]
v = parent[v][j]
}
}
return parent[u][0]
}
func dist(u, v int) int {
l := getLCA(u, v)
return depth[u] + depth[v] - 2*depth[l]
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
func main() {
var n int
fmt.Scan(&n)
adj = make([][]int, n+1)
depth = make([]int, n+1)
for i := 0; i < n-1; i++ {
var u, v int
fmt.Scan(&u, &v)
adj[u] = append(adj[u], v)
adj[v] = append(adj[v], u)
}
buildLCA(n)
var q int
fmt.Scan(&q)
for qi := 0; qi < q; qi++ {
var x, y, a, b, k int
fmt.Scan(&x, &y, &a, &b, &k)
d0 := dist(a, b)
dxy := dist(x, y)
d1 := dist(a, x) + 1 + dist(b, y)
d2 := dist(a, y) + 1 + dist(b, x)
mins := min(d1, d2)
if dxy%2 == 1 {
minlen := min(d0, mins)
if k >= minlen && (k-minlen)%2 == 0 {
fmt.Println("YES")
} else {
fmt.Println("NO")
}
} else {
ok := false
if k >= d0 && (k-d0)%2 == 0 {
ok = true
} else if k >= mins && (k-mins)%2 == 0 {
ok = true
}
if ok {
fmt.Println("YES")
} else {
fmt.Println("NO")
}
}
}
}
```