For problem statement at 1000-1999/1200-1299/1200-1209/1204/problemD1.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1200-1209/1204/verifierD1.go ends with test 2 failed: expected "0" got "1"
exit status 1 can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
s, _ := reader.ReadString('\n')
s = s[:len(s)-1]
if len(s) > 0 && s[len(s)-1] == '\r' {
s = s[:len(s)-1]
}
n := len(s)
g := make([]int, n+1)
for i := 0; i < n; i++ {
if s[i] == '0' {
g[i+1] = g[i] + 1
} else {
g[i+1] = g[i] - 1
}
}
prefMax := make([]int, n+1)
suffMax := make([]int, n+2)
prefMax[0] = g[0]
for i := 1; i <= n; i++ {
if g[i] > prefMax[i-1] {
prefMax[i] = g[i]
} else {
prefMax[i] = prefMax[i-1]
}
}
suffMax[n+1] = -n - 10
suffMax[n] = g[n]
for i := n - 1; i >= 0; i-- {
if g[i] > suffMax[i+1] {
suffMax[i] = g[i]
} else {
suffMax[i] = suffMax[i+1]
}
}
t := make([]byte, n)
for i := 0; i < n; i++ {
if s[i] == '0' {
t[i] = '0'
} else {
if g[i+1] == prefMax[i+1] || g[i+1] == suffMax[i+1] {
t[i] = '1'
} else {
t[i] = '0'
}
}
}
fmt.Println(string(t))
}
```