For problem statement at 0-999/0-99/20-29/25/problemD.txt this is a correct solution, but verifier at 0-999/0-99/20-29/25/verifierD.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
if !scanner.Scan() {
return
}
n, _ := strconv.Atoi(scanner.Text())
parent := make([]int, n+1)
for i := 1; i <= n; i++ {
parent[i] = i
}
var find func(i int) int
find = func(i int) int {
if parent[i] == i {
return i
}
parent[i] = find(parent[i])
return parent[i]
}
union := func(i, j int) bool {
rootI := find(i)
rootJ := find(j)
if rootI != rootJ {
parent[rootI] = rootJ
return true
}
return false
}
type Edge struct {
u, v int
}
var redundantEdges []Edge
for i := 0; i < n-1; i++ {
scanner.Scan()
u, _ := strconv.Atoi(scanner.Text())
scanner.Scan()
v, _ := strconv.Atoi(scanner.Text())
if !union(u, v) {
redundantEdges = append(redundantEdges, Edge{u, v})
}
}
var roots []int
for i := 1; i <= n; i++ {
if parent[i] == i {
roots = append(roots, i)
}
}
fmt.Println(len(redundantEdges))
for i := 0; i < len(redundantEdges); i++ {
fmt.Printf("%d %d %d %d\n", redundantEdges[i].u, redundantEdges[i].v, roots[0], roots[i+1])
}
}