← Home
For problem statement at 1000-1999/1800-1899/1840-1849/1842/problemF.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1840-1849/1842/verifierF.go ends with failed to read n: EOF
exit status 1 can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	n, _ := strconv.Atoi(scanner.Text())

	adj := make([][]int, n)
	for i := 0; i < n-1; i++ {
		scanner.Scan()
		parts := strings.Fields(scanner.Text())
		u, _ := strconv.Atoi(parts[0])
		v, _ := strconv.Atoi(parts[1])
		u--
		v--
		adj[u] = append(adj[u], v)
		adj[v] = append(adj[v], u)
	}

	ans := make([]int, n+1)
	dist := make([]int, n)
	freq := make([]int, n)
	pref := make([]int, n+1)
	queue := make([]int, 0, n)

	for r := 0; r < n; r++ {
		for i := 0; i < n; i++ {
			dist[i] = -1
		}
		dist[r] = 0
		queue = append(queue[:0], r)
		maxDist := 0
		for len(queue) > 0 {
			u := queue[0]
			queue = queue[1:]
			for _, v := range adj[u] {
				if dist[v] == -1 {
					dist[v] = dist[u] + 1
					if dist[v] > maxDist {
						maxDist = dist[v]
					}
					queue = append(queue, v)
				}
			}
		}

		for i := 0; i <= maxDist; i++ {
			freq[i] = 0
		}
		for i := 0; i < n; i++ {
			freq[dist[i]]++
		}

		pref[0] = 0
		idx := 1
		for d := 0; d <= maxDist; d++ {
			for i := 0; i < freq[d]; i++ {
				pref[idx] = pref[idx-1] + d
				idx++
			}
		}

		base := n - 1
		for k := 1; k <= n; k++ {
			val := k*base - 2*pref[k]
			if val > ans[k] {
				ans[k] = val
			}
		}
	}

	out := make([]string, n+1)
	for i := 0; i <= n; i++ {
		out[i] = strconv.Itoa(ans[i])
	}
	fmt.Println(strings.Join(out, " "))
}
```