package main import . "fmt" import . "math" func main() { var n,d,k int Scan(&n,&d,&k) a := make([]int64, n) c := make([]int, n) for i:= range a { Scan(&a[i]) } for i:= range c { Scan(&c[i]) } dp := make([][]int64, d+1) for i:=range dp { dp[i] = make([]int64, k+1) for j := range dp[i] { dp[i][j] = MinInt64 } } dp[0][0] = 0 for i, va := range a { vc := c[i] for j:=d-1; j>=0; j-- { for xc, xa := range dp[j] { if xa == MinInt64 { continue } zc := vc+xc if zc > k { zc = k } za := va+xa if za > dp[j+1][zc] { dp[j+1][zc] = za } } } } if ans := dp[d][k]; ans == MinInt64 { Println("No") } else { Println(ans) } }