#include const int MAXN=5017; using namespace std; int n, a[MAXN], b[MAXN], k[MAXN]; long long dp[10017][MAXN]; int main() { freopen("fruits.in","r",stdin); freopen("fruits.out","w",stdout); cin>>n; for(int i=1; i<=n; i++) cin>>a[i]; for(int i=1; i<=n; i++) cin>>b[i]; for(int i=1; i<=n; i++) cin>>k[i]; long long ans=0; for(int d=1; d<10017; d++) { for(int in=1; in<=n; in++) { if(k[in]>=d) dp[d][in]=max(dp[d][in], dp[d-1][in-1]+a[in]+b[in]*1ll*(d-1)); } for(int in=1; in<=n; in++) dp[d][in]=max(dp[d][in], dp[d][in-1]); ans=max(ans, dp[d][n]); } cout<