← Home
For problem statement at 0-999/0-99/30-39/34/problemD.txt this is a correct solution, but verifier at 0-999/0-99/30-39/34/verifierD.go ends with All tests passed can you fix the verifier? package main

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

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

	var n, r1, r2 int
	if _, err := fmt.Fscan(in, &n, &r1, &r2); err != nil {
		return
	}

	g := make([][]int, n+1)
	for i := 1; i <= n; i++ {
		if i == r1 {
			continue
		}
		var p int
		fmt.Fscan(in, &p)
		g[i] = append(g[i], p)
		g[p] = append(g[p], i)
	}

	parent := make([]int, n+1)
	q := make([]int, 0, n)
	q = append(q, r2)
	for head := 0; head < len(q); head++ {
		u := q[head]
		for _, v := range g[u] {
			if v == parent[u] {
				continue
			}
			parent[v] = u
			q = append(q, v)
		}
	}

	first := true
	for i := 1; i <= n; i++ {
		if i == r2 {
			continue
		}
		if !first {
			fmt.Fprint(out, " ")
		}
		fmt.Fprint(out, parent[i])
		first = false
	}
	fmt.Fprintln(out)
}