← Home
For problem statement at 0-999/100-199/190-199/198/problemB.txt this is a correct solution, but verifier at 0-999/100-199/190-199/198/verifierB.go ends with All tests passed can you fix the verifier? ```go
package main

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

type Node struct {
	side int
	pos  int
	t    int
}

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

	var n, k int
	if _, err := fmt.Fscan(in, &n, &k); err != nil {
		return
	}
	var sL, sR string
	fmt.Fscan(in, &sL)
	fmt.Fscan(in, &sR)

	walls := [2][]byte{[]byte(sL), []byte(sR)}
	visited := make([][]bool, 2)
	visited[0] = make([]bool, n+2)
	visited[1] = make([]bool, n+2)

	q := make([]Node, 0, 2*n+5)
	q = append(q, Node{0, 1, 0})
	visited[0][1] = true

	head := 0
	for head < len(q) {
		cur := q[head]
		head++

		if cur.pos <= cur.t {
			continue
		}

		nt := cur.t + 1

		np := cur.pos + 1
		if np > n {
			fmt.Fprintln(out, "YES")
			return
		}
		if np > nt && walls[cur.side][np-1] == '-' && !visited[cur.side][np] {
			visited[cur.side][np] = true
			q = append(q, Node{cur.side, np, nt})
		}

		np = cur.pos - 1
		if np > 0 && np > nt && walls[cur.side][np-1] == '-' && !visited[cur.side][np] {
			visited[cur.side][np] = true
			q = append(q, Node{cur.side, np, nt})
		}

		ns := 1 - cur.side
		np = cur.pos + k
		if np > n {
			fmt.Fprintln(out, "YES")
			return
		}
		if np > nt && walls[ns][np-1] == '-' && !visited[ns][np] {
			visited[ns][np] = true
			q = append(q, Node{ns, np, nt})
		}
	}

	fmt.Fprintln(out, "NO")
}
```