For problem statement at 0-999/800-899/810-819/813/problemC.txt this is a correct solution, but verifier at 0-999/800-899/810-819/813/verifierC.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
buf := make([]byte, 1024*1024)
scanner.Buffer(buf, 1024*1024)
scanInt := func() int {
scanner.Scan()
n, _ := strconv.Atoi(scanner.Text())
return n
}
if !scanner.Scan() {
return
}
n, _ := strconv.Atoi(scanner.Text())
x := scanInt()
adj := make([][]int, n+1)
for i := 0; i < n-1; i++ {
u := scanInt()
v := scanInt()
adj[u] = append(adj[u], v)
adj[v] = append(adj[v], u)
}
bfs := func(start int) []int {
dist := make([]int, n+1)
for i := range dist {
dist[i] = -1
}
queue := make([]int, 0, n)
queue = append(queue, start)
dist[start] = 0
for head := 0; head < len(queue); head++ {
u := queue[head]
for _, v := range adj[u] {
if dist[v] == -1 {
dist[v] = dist[u] + 1
queue = append(queue, v)
}
}
}
return dist
}
distA := bfs(1)
distB := bfs(x)
ans := 0
for i := 1; i <= n; i++ {
if distB[i] < distA[i] {
if distA[i] > ans {
ans = distA[i]
}
}
}
fmt.Println(ans * 2)
}