For problem statement at 0-999/100-199/130-139/132/problemD.txt this is a correct solution, but verifier at 0-999/100-199/130-139/132/verifierD.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"io"
"os"
)
func writeInt(out *bufio.Writer, n int) {
if n == 0 {
out.WriteByte('0')
return
}
var buf [20]byte
i := 19
for n > 0 {
buf[i] = byte(n%10 + '0')
n /= 10
i--
}
out.Write(buf[i+1:])
}
func main() {
input, err := io.ReadAll(os.Stdin)
if err != nil {
return
}
start := 0
for start < len(input) && (input[start] != '0' && input[start] != '1') {
start++
}
end := start
for end < len(input) && (input[end] == '0' || input[end] == '1') {
end++
}
if start == end {
return
}
sBytes := input[start:end]
carry := 0
power := 0
L := len(sBytes)
powers := make([]int, 0, L/2+2)
signs := make([]byte, 0, L/2+2)
for i := L - 1; i >= 0 || carry > 0; i-- {
bit := carry
if i >= 0 {
bit += int(sBytes[i] - '0')
}
if bit%2 != 0 {
nextBit := 0
if i-1 >= 0 {
nextBit = int(sBytes[i-1] - '0')
}
if nextBit == 1 {
powers = append(powers, power)
signs = append(signs, '-')
carry = 1
} else {
powers = append(powers, power)
signs = append(signs, '+')
carry = 0
}
} else {
carry = bit / 2
}
power++
}
out := bufio.NewWriterSize(os.Stdout, 1024*1024)
writeInt(out, len(powers))
out.WriteByte('\n')
for i := 0; i < len(powers); i++ {
out.WriteByte(signs[i])
out.WriteString("2^")
writeInt(out, powers[i])
out.WriteByte('\n')
}
out.Flush()
}
```