← 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? package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	var n int
	if _, err := fmt.Fscan(in, &n); err != nil {
		return
	}
	adj := make([][]int, n+1)
	for i := 0; i < n-1; i++ {
		var u, v int
		fmt.Fscan(in, &u, &v)
		adj[u] = append(adj[u], v)
		adj[v] = append(adj[v], u)
	}

	size := make([]int64, n+1)
	var dfs1 func(int, int)
	dfs1 = func(u, p int) {
		size[u] = 1
		for _, v := range adj[u] {
			if v != p {
				dfs1(v, u)
				size[u] += size[v]
			}
		}
	}
	dfs1(1, 0)

	var initial int64
	for i := 1; i <= n; i++ {
		initial += size[i]
	}

	ans := initial
	var dfs2 func(int, int, int64)
	dfs2 = func(u, p int, cur int64) {
		if cur > ans {
			ans = cur
		}
		for _, v := range adj[u] {
			if v != p {
				dfs2(v, u, cur+int64(n)-2*size[v])
			}
		}
	}
	dfs2(1, 0, initial)

	fmt.Println(ans)
}