← Home
For problem statement at 1000-1999/1100-1199/1180-1189/1187/problemE.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1180-1189/1187/verifierE.go ends with All tests passed can you fix the verifier? ```go
package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	b, _ := io.ReadAll(os.Stdin)
	var idx int
	readInt := func() int {
		for idx < len(b) && b[idx] <= ' ' {
			idx++
		}
		if idx >= len(b) {
			return 0
		}
		res := 0
		for idx < len(b) && b[idx] > ' ' {
			res = res*10 + int(b[idx]-'0')
			idx++
		}
		return res
	}

	n := readInt()
	if n == 0 {
		return
	}

	adj := make([][]int, n+1)
	for i := 0; i < n-1; i++ {
		u := readInt()
		v := readInt()
		adj[u] = append(adj[u], v)
		adj[v] = append(adj[v], u)
	}

	sz := make([]int64, n+1)
	var S1 int64

	var dfs1 func(int, int)
	dfs1 = func(u, p int) {
		sz[u] = 1
		for _, v := range adj[u] {
			if v != p {
				dfs1(v, u)
				sz[u] += sz[v]
			}
		}
		S1 += sz[u]
	}

	dfs1(1, 0)

	var maxS int64
	var dfs2 func(int, int, int64)
	dfs2 = func(u, p int, S int64) {
		if S > maxS {
			maxS = S
		}
		for _, v := range adj[u] {
			if v != p {
				dfs2(v, u, S+int64(n)-2*sz[v])
			}
		}
	}

	dfs2(1, 0, S1)

	fmt.Println(maxS)
}
```