For problem statement at 2000-2999/2000-2099/2020-2029/2026/problemC.txt this is a correct solution, but verifier at 2000-2999/2000-2099/2020-2029/2026/verifierC.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
readInt := func() int {
scanner.Scan()
x, _ := strconv.Atoi(scanner.Text())
return x
}
readString := func() string {
scanner.Scan()
return scanner.Text()
}
t := readInt()
for tc := 0; tc < t; tc++ {
n := readInt()
s := readString()
D := make([]int, 0, n)
for i := n; i >= 1; i-- {
if s[i-1] == '1' {
D = append(D, i)
}
}
m := len(D)
maxK := m
if n/2 < maxK {
maxK = n / 2
}
feasible := func(k int) bool {
prev := n + 1
for i := 0; i < k; i++ {
L := 2 * (k - i)
U := D[i]
f := U
if prev-1 < f {
f = prev - 1
}
if f < L {
return false
}
prev = f
}
return true
}
computeSum := func(k int) int64 {
prev := n + 1
var sum int64 = 0
for i := 0; i < k; i++ {
U := D[i]
f := U
if prev-1 < f {
f = prev - 1
}
sum += int64(f)
prev = f
}
return sum
}
lo, hi := 0, maxK
for lo <= hi {
mid := (lo + hi) / 2
if feasible(mid) {
lo = mid + 1
} else {
hi = mid - 1
}
}
bestK := hi
discount := computeSum(bestK)
total := int64(n) * int64(n+1) / 2
ans := total - discount
fmt.Fprintln(writer, ans)
}
}
```