For problem statement at 1000-1999/1200-1299/1280-1289/1280/problemC.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1280-1289/1280/verifierC.go ends with All tests passed! can you fix the verifier? package main
import (
"fmt"
"io"
"os"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
pos := 0
nextInt := func() int {
for pos < len(data) && data[pos] <= ' ' {
pos++
}
if pos >= len(data) {
return 0
}
res := 0
for pos < len(data) && data[pos] > ' ' {
res = res*10 + int(data[pos]-'0')
pos++
}
return res
}
t := nextInt()
if t == 0 {
return
}
maxN := 600005
head := make([]int, maxN)
to := make([]int, 2*maxN)
next := make([]int, 2*maxN)
w := make([]int64, 2*maxN)
order := make([]int, maxN)
parent := make([]int, maxN)
weightEdge := make([]int64, maxN)
size := make([]int, maxN)
q := make([]int, maxN)
visited := make([]bool, maxN)
for tc := 0; tc < t; tc++ {
k := nextInt()
n := 2 * k
for i := 0; i < n; i++ {
head[i] = -1
visited[i] = false
size[i] = 1
}
edgeCount := 0
addEdge := func(u, v int, weight int64) {
to[edgeCount] = v
w[edgeCount] = weight
next[edgeCount] = head[u]
head[u] = edgeCount
edgeCount++
}
for i := 0; i < n-1; i++ {
u := nextInt() - 1
v := nextInt() - 1
weight := int64(nextInt())
addEdge(u, v, weight)
addEdge(v, u, weight)
}
qhead, qtail := 0, 0
q[qtail] = 0
qtail++
visited[0] = true
for qhead < qtail {
u := q[qhead]
qhead++
order[qhead-1] = u
for e := head[u]; e != -1; e = next[e] {
v := to[e]
if !visited[v] {
visited[v] = true
parent[v] = u
weightEdge[v] = w[e]
q[qtail] = v
qtail++
}
}
}
var minSum, maxSum int64
for i := n - 1; i > 0; i-- {
u := order[i]
p := parent[u]
s := size[u]
size[p] += s
we := weightEdge[u]
if s%2 != 0 {
minSum += we
}
if s < n-s {
maxSum += int64(s) * we
} else {
maxSum += int64(n-s) * we
}
}
fmt.Printf("%d %d\n", minSum, maxSum)
}
}