#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int n,m,k;
cin>>n>>m>>k;
int p[n+1];
for(int q=1;q<=n;q++){
cin>>p[q];
}
int b[m+1];
for(int q=0;q<=m;q++){
cin>>b[q];
}
int dp[n+1][k+1];
dp[0][0]=0;
for(int q=1;q<=k;q++){
dp[0][q]=-1e15;
}
int ans=0;
for(int q=1;q<=n;q++){
for(int w=0;w<=k;w++){
dp[q][w]=-1e15;
for(int pakai=0;pakai<=min(w,m-p[q]);pakai++){
dp[q][w]=max(dp[q][w],dp[q-1][w-pakai]+b[pakai+p[q]]);
}
ans=max(ans,dp[q][w]);
}
}
cout<<ans<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |