← Home
For problem statement at 1000-1999/1900-1999/1910-1919/1914/problemF.txt this is a correct solution, but verifier at 1000-1999/1900-1999/1910-1919/1914/verifierF.go ends with wrong answer on test 20
input:
1
8
1 2 2 3 5 4 4
expected:3
got:2

exit status 1 can you fix the verifier? ```go
package main

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

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 i := 0; i < t; i++ {
		var n int
		fmt.Fscan(reader, &n)

		children := make([][]int, n+1)
		for j := 2; j <= n; j++ {
			var p int
			fmt.Fscan(reader, &p)
			children[p] = append(children[p], j)
		}

		order := make([]int, 0, n)
		queue := make([]int, 0, n)
		queue = append(queue, 1)
		head := 0

		for head < len(queue) {
			u := queue[head]
			head++
			order = append(order, u)
			for _, v := range children[u] {
				queue = append(queue, v)
			}
		}

		A := make([]int, n+1)
		totalPairs := 0

		for j := n - 1; j >= 0; j-- {
			u := order[j]
			S := 0
			M := 0
			for _, v := range children[u] {
				S += A[v]
				if A[v] > M {
					M = A[v]
				}
			}

			pairs := 0
			if M > S/2 {
				pairs = S - M
			} else {
				pairs = S / 2
			}
			
			totalPairs += pairs
			A[u] = S - 2*pairs + 1
		}

		fmt.Fprintln(writer, totalPairs)
	}
}
```