For problem statement at 0-999/800-899/880-889/883/problemC.txt this is a correct solution, but verifier at 0-999/800-899/880-889/883/verifierC.go ends with case 2 mismatch
input:
120 960 10
26 8 8
40 9 10
expected: 40
got: -1
exit status 1 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 f, T, t0 int64
fmt.Fscan(in, &f, &T, &t0)
var a1, t1, p1 int64
fmt.Fscan(in, &a1, &t1, &p1)
var a2, t2, p2 int64
fmt.Fscan(in, &a2, &t2, &p2)
if f*t0 <= T {
fmt.Fprintln(out, 0)
return
}
const INF int64 = 1<<60
ans := INF
solve := func(f, T, t0, a1, t1, p1, a2, t2, p2 int64) {
var maxX int64
if t1 >= t0 {
maxX = 0
} else {
maxX = f / a1
}
for x := int64(0); x <= maxX; x++ {
bytes1 := x * a1
time1 := bytes1 * t1
if time1 > T {
break
}
cost1 := x * p1
remBytes := f - bytes1
remTime := T - time1
if remBytes*t0 <= remTime {
if cost1 < ans {
ans = cost1
}
continue
}
if t2 >= t0 {
continue
}
deficit := remBytes*t0 - remTime
savePerPkg2 := a2 * (t0 - t2)
y := (deficit + savePerPkg2 - 1) / savePerPkg2
if y*a2 <= remBytes {
totalCost := cost1 + y*p2
if totalCost < ans {
ans = totalCost
}
}
}
}
solve(f, T, t0, a1, t1, p1, a2, t2, p2)
solve(f, T, t0, a2, t2, p2, a1, t1, p1)
if ans == INF {
fmt.Fprintln(out, -1)
} else {
fmt.Fprintln(out, ans)
}
}
```