← Home
For problem statement at 0-999/900-999/920-929/922/problemE.txt this is a correct solution, but verifier at 0-999/900-999/920-929/922/verifierE.go ends with All tests passed can you fix the verifier? package main

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

func main() {
	reader := bufio.NewReader(os.Stdin)
	var n, w, b, x int64
	fmt.Fscan(reader, &n, &w, &b, &x)

	c := make([]int, n)
	for i := 0; i < int(n); i++ {
		fmt.Fscan(reader, &c[i])
	}

	cost := make([]int64, n)
	for i := 0; i < int(n); i++ {
		fmt.Fscan(reader, &cost[i])
	}

	dp := make([]int64, 10005)
	for i := range dp {
		dp[i] = -1
	}
	dp[0] = w

	maxJ := 0

	for i := 0; i < int(n); i++ {
		if i > 0 {
			for j := 0; j <= maxJ; j++ {
				if dp[j] != -1 {
					dp[j] += x
					cap := w + int64(j)*b
					if dp[j] > cap {
						dp[j] = cap
					}
				}
			}
		}

		for k := 0; k < c[i]; k++ {
			for j := maxJ; j >= 0; j-- {
				if dp[j] >= cost[i] {
					if dp[j]-cost[i] > dp[j+1] {
						dp[j+1] = dp[j] - cost[i]
					}
				}
			}
			maxJ++
		}
	}

	ans := 0
	for j := 0; j <= maxJ; j++ {
		if dp[j] >= 0 {
			ans = j
		}
	}
	fmt.Println(ans)
}