For problem statement at 2000-2999/2100-2199/2100-2109/2107/problemE.txt this is a correct solution, but verifier at 2000-2999/2100-2199/2100-2109/2107/verifierE.go ends with All 32 tests passed. can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
fmt.Fscan(reader, &t)
S := make([]int64, 0, 200005)
for tc := 0; tc < t; tc++ {
var n, k int64
fmt.Fscan(reader, &n, &k)
maxWeight := n * (n - 1) * (n - 2) / 6
if k > maxWeight+1 {
fmt.Fprintln(writer, "No")
continue
}
rem := k
S = S[:0]
for x := n - 1; x >= 2; x-- {
cx := x * (x - 1) / 2
if rem >= cx {
S = append(S, x)
rem -= cx
}
}
if rem > 1 {
fmt.Fprintln(writer, "No")
continue
}
fmt.Fprintln(writer, "Yes")
m := len(S)
for i := 1; i <= m; i++ {
fmt.Fprintln(writer, i, i+1)
}
nextNode := int64(m + 2)
for i := 0; i <= m; i++ {
var c int64
if i == 0 {
if m == 0 {
c = n - 1
} else {
c = n - 1 - S[0]
}
} else if i == m {
c = S[m-1] - 1
} else {
c = S[i-1] - S[i] - 1
}
parent := int64(i + 1)
for j := int64(0); j < c; j++ {
fmt.Fprintln(writer, parent, nextNode)
nextNode++
}
}
}
}