← Home
For problem statement at 2000-2999/2100-2199/2140-2149/2145/problemB.txt this is a correct solution, but verifier at 2000-2999/2100-2199/2140-2149/2145/verifierB.go ends with All 206 cases passed can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	if _, err := fmt.Fscan(in, &t); err != nil {
		return
	}
	for ; t > 0; t-- {
		var n, k int
		fmt.Fscan(in, &n, &k)
		var s string
		fmt.Fscan(in, &s)

		c0, c1 := 0, 0
		for _, ch := range s {
			if ch == '0' {
				c0++
			} else if ch == '1' {
				c1++
			}
		}
		c2 := k - c0 - c1
		m := n - k

		ans := make([]byte, n)
		if m == 0 {
			for i := 0; i < n; i++ {
				ans[i] = '-'
			}
			fmt.Fprintln(out, string(ans))
			continue
		}

		Lmin := 1 + c0
		Lmax := 1 + c0 + c2
		U1 := Lmin
		U2 := Lmax + m - 1
		I1 := Lmax
		I2 := Lmin + m - 1

		for i := 1; i <= n; i++ {
			if i < U1 || i > U2 {
				ans[i-1] = '-'
			} else if i >= I1 && i <= I2 {
				ans[i-1] = '+'
			} else {
				ans[i-1] = '?'
			}
		}
		fmt.Fprintln(out, string(ans))
	}
}
```