For problem statement at 0-999/700-799/730-739/730/problemD.txt this is a correct solution, but verifier at 0-999/700-799/730-739/730/verifierD.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
buf := make([]byte, 1024*1024)
scanner.Buffer(buf, 1024*1024)
scan := func() int64 {
scanner.Scan()
val, _ := strconv.ParseInt(scanner.Text(), 10, 64)
return val
}
if !scanner.Scan() {
return
}
n, _ := strconv.Atoi(scanner.Text())
r := scan()
l := make([]int64, n)
for i := 0; i < n; i++ {
l[i] = scan()
}
t := make([]int64, n)
for i := 0; i < n; i++ {
t[i] = scan()
}
var currentTime int64 = 0
var activeDist int64 = 0
var drinksCount int64 = 0
var drinkTimes []int64
for i := 0; i < n; i++ {
if l[i] > t[i] {
fmt.Println("-1")
return
}
d := activeDist
if d > l[i] {
d = l[i]
}
activeDist -= d
L := l[i] - d
T := t[i] - d
currentTime += d
if L == 0 {
continue
}
req := 2*L - T
if req < 0 {
req = 0
}
walkDist := L - req
currentTime += 2 * walkDist
if req > 0 {
k := (req + r - 1) / r
drinksCount += k
if drinksCount <= 100000 {
for j := int64(0); j < k; j++ {
drinkTimes = append(drinkTimes, currentTime+j*r)
}
}
currentTime += req
activeDist = k*r - req
}
}
fmt.Println(drinksCount)
if drinksCount <= 100000 {
writer := bufio.NewWriter(os.Stdout)
for i, time := range drinkTimes {
if i > 0 {
writer.WriteString(" ")
}
writer.WriteString(strconv.FormatInt(time, 10))
}
writer.WriteString("\n")
writer.Flush()
}
}