← Home
For problem statement at 2000-2999/2100-2199/2150-2159/2152/problemH1.txt this is a correct solution, but verifier at 2000-2999/2100-2199/2150-2159/2152/verifierH1.go ends with reference failed on test 1 (simple_line): runtime error: exit status 1
stat /home/ubuntu/codeforces/2000-2999/2100-2199/2150-2159/2152/2000-2999/2100-2199/2150-2159/2152/2152H1.go: no such file or directory

input:
1
3
1 2 5
2 3 7
2
0
5
exit status 1 can you fix the verifier? package main

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

type Edge struct {
	to, w int
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	if _, err := fmt.Fscan(reader, &t); err != nil {
		return
	}

	for tc := 0; tc < t; tc++ {
		var n int
		fmt.Fscan(reader, &n)

		adj := make([][]Edge, n+1)

		for i := 0; i < n-1; i++ {
			var u, v, w int
			fmt.Fscan(reader, &u, &v, &w)
			adj[u] = append(adj[u], Edge{v, w})
			adj[v] = append(adj[v], Edge{u, w})
		}

		var q int
		fmt.Fscan(reader, &q)

		for i := 0; i < q; i++ {
			var l int
			fmt.Fscan(reader, &l)

			var solve func(u, p int) (int, int)
			solve = func(u, p int) (int, int) {
				sumMins := 0
				totalX := 0
				for _, e := range adj[u] {
					if e.to != p {
						x, dpv := solve(e.to, u)
						totalX += x
						if dpv < e.w {
							sumMins += dpv
						} else {
							sumMins += e.w
						}
					}
				}
				req := l
				if p != 0 {
					for _, e := range adj[u] {
						if e.to == p {
							req = l - e.w
							break
						}
					}
				}
				if req < 0 {
					req = 0
				}
				dpu := sumMins
				xu := 0
				if dpu < req {
					xu = req - dpu
					dpu = req
				}
				return totalX + xu, dpu
			}

			maxAns := 0
			for root := 1; root <= n; root++ {
				ans, _ := solve(root, 0)
				if ans > maxAns {
					maxAns = ans
				}
			}

			fmt.Fprintln(writer, maxAns)
		}
	}
}