For problem statement at 0-999/400-499/470-479/479/problemE.txt this is a correct solution, but verifier at 0-999/400-499/470-479/479/verifierE.go ends with All 100 tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
const mod = 1000000007
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
var n, a, b, k int
fmt.Fscan(in, &n, &a, &b, &k)
if a > b {
a = n - a + 1
b = n - b + 1
}
dp := make([]int, b)
next := make([]int, b)
prefix := make([]int, b)
dp[a] = 1
for step := 0; step < k; step++ {
prefix[0] = 0
for i := 1; i < b; i++ {
v := prefix[i-1] + dp[i]
if v >= mod {
v -= mod
}
prefix[i] = v
}
for i := 1; i < b; i++ {
r := (b + i - 1) / 2
v := prefix[r] - dp[i]
if v < 0 {
v += mod
}
next[i] = v
}
dp, next = next, dp
}
ans := 0
for i := 1; i < b; i++ {
ans += dp[i]
if ans >= mod {
ans -= mod
}
}
fmt.Fprintln(out, ans)
}