← Home
For problem statement at 0-999/800-899/840-849/847/problemA.txt this is a correct solution, but verifier at 0-999/800-899/840-849/847/verifierA.go ends with 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 int
	if _, err := fmt.Fscan(in, &n); err != nil {
		return
	}
	l := make([]int, n+1)
	r := make([]int, n+1)
	for i := 1; i <= n; i++ {
		fmt.Fscan(in, &l[i], &r[i])
	}

	heads := []int{}
	for i := 1; i <= n; i++ {
		if l[i] == 0 {
			heads = append(heads, i)
		}
	}

	tails := make(map[int]int)
	for _, h := range heads {
		t := h
		for r[t] != 0 {
			t = r[t]
		}
		tails[h] = t
	}

	for i := 0; i+1 < len(heads); i++ {
		a := heads[i]
		b := heads[i+1]
		ta := tails[a]
		r[ta] = b
		l[b] = ta
	}

	for i := 1; i <= n; i++ {
		fmt.Fprintln(out, l[i], r[i])
	}
}