For problem statement at 0-999/300-399/370-379/372/problemC.txt this is a correct solution, but verifier at 0-999/300-399/370-379/372/verifierC.go ends with All 100 tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var n, m int
var d int64
fmt.Fscan(reader, &n, &m, &d)
dp := make([]int64, n+1)
dp_prev := make([]int64, n+1)
q := make([]int, n+1)
var t_prev int64 = 1
for i := 0; i < m; i++ {
var a int
var b, t int64
fmt.Fscan(reader, &a, &b, &t)
dp, dp_prev = dp_prev, dp
max_dist := (t - t_prev) * d
if max_dist > int64(n) {
max_dist = int64(n)
}
md := int(max_dist)
head, tail := 0, 0
right := 1
for x := 1; x <= n; x++ {
lim := x + md
if lim > n {
lim = n
}
for ; right <= lim; right++ {
for tail > head && dp_prev[q[tail-1]] <= dp_prev[right] {
tail--
}
q[tail] = right
tail++
}
for head < tail && q[head] < x-md {
head++
}
dist := a - x
if dist < 0 {
dist = -dist
}
dp[x] = dp_prev[q[head]] + b - int64(dist)
}
t_prev = t
}
ans := dp[1]
for x := 2; x <= n; x++ {
if dp[x] > ans {
ans = dp[x]
}
}
fmt.Println(ans)
}