For problem statement at 1000-1999/1100-1199/1160-1169/1166/problemD.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1160-1169/1166/verifierD.go ends with All 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 q int
fmt.Fscan(reader, &q)
for i := 0; i < q; i++ {
var a, b, m uint64
fmt.Fscan(reader, &a, &b, &m)
if a == b {
fmt.Fprintf(writer, "1 %d\n", a)
continue
}
found := false
for k := 2; k <= 50; k++ {
p := uint64(1) << (k - 2)
if b/p < a+1 {
break
}
minVal := (a + 1) * p
diff := b - minVal
req := diff / p
if diff%p != 0 {
req++
}
if req <= m-1 {
found = true
fmt.Fprintf(writer, "%d %d ", k, a)
delta := diff
x := make([]uint64, k+1)
x[1] = a
sum := a
for j := 2; j <= k; j++ {
exp := k - j - 1
if exp < 0 {
exp = 0
}
c := uint64(1) << exp
add := delta / c
if add > m-1 {
add = m - 1
}
r := uint64(1) + add
delta -= add * c
x[j] = sum + r
sum += x[j]
if j == k {
fmt.Fprintf(writer, "%d\n", x[j])
} else {
fmt.Fprintf(writer, "%d ", x[j])
}
}
break
}
}
if !found {
fmt.Fprintln(writer, "-1")
}
}
}