For problem statement at 0-999/100-199/190-199/191/problemC.txt this is a correct solution, but verifier at 0-999/100-199/190-199/191/verifierC.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n int
fmt.Fscan(in, &n)
type Edge struct {
to int
id int
}
adj := make([][]Edge, n+1)
for i := 1; i <= n-1; i++ {
var u, v int
fmt.Fscan(in, &u, &v)
adj[u] = append(adj[u], Edge{v, i})
adj[v] = append(adj[v], Edge{u, i})
}
LOG := 20
parent := make([][]int, LOG)
for i := range parent {
parent[i] = make([]int, n+1)
}
depth := make([]int, n+1)
order := make([]int, 0, n)
stack := []int{1}
parent[0][1] = 0
depth[1] = 0
for len(stack) > 0 {
u := stack[len(stack)-1]
stack = stack[:len(stack)-1]
order = append(order, u)
for _, e := range adj[u] {
if e.to != parent[0][u] {
parent[0][e.to] = u
depth[e.to] = depth[u] + 1
stack = append(stack, e.to)
}
}
}
for j := 1; j < LOG; j++ {
for i := 1; i <= n; i++ {
p := parent[j-1][i]
if p != 0 {
parent[j][i] = parent[j-1][p]
}
}
}
lca := func(u, v int) int {
if depth[u] < depth[v] {
u, v = v, u
}
for i := LOG - 1; i >= 0; i-- {
if depth[u]-(1<<i) >= depth[v] {
u = parent[i][u]
}
}
if u == v {
return u
}
for i := LOG - 1; i >= 0; i-- {
if parent[i][u] != parent[i][v] {
u = parent[i][u]
v = parent[i][v]
}
}
return parent[0][u]
}
cnt := make([]int, n+1)
var k int
fmt.Fscan(in, &k)
for i := 0; i < k; i++ {
var a, b int
fmt.Fscan(in, &a, &b)
cnt[a]++
cnt[b]++
w := lca(a, b)
cnt[w] -= 2
}
ans := make([]int, n)
for i := n - 1; i >= 0; i-- {
u := order[i]
for _, e := range adj[u] {
if e.to != parent[0][u] {
ans[e.id] = cnt[e.to]
cnt[u] += cnt[e.to]
}
}
}
for i := 1; i <= n-1; i++ {
if i > 1 {
fmt.Fprint(out, " ")
}
fmt.Fprint(out, ans[i])
}
fmt.Fprintln(out)
}
```