#include <cstdio>
#include <algorithm>
using namespace std;
long long fm[100005],ans=0,t,n;
struct node{
long long ai,bi,ci;
}tn[55];
bool cp(node a,node b){
return a.ci*b.bi<a.bi*b.ci;
}
int max(int a,int b){return a>b?a:b;}
int main(){
scanf("%lld%lld",&t,&n);
for(int i=1;i<=n;i++)scanf("%lld",&tn[i].ai);
for(int i=1;i<=n;i++)scanf("%lld",&tn[i].bi);
for(int i=1;i<=n;i++)scanf("%lld",&tn[i].ci);
sort(tn+1,tn+n+1,cp);
for(int i=1;i<=n;i++){
for(int j=t;j-tn[i].ci>=0;j--){
fm[j]=max(fm[j],fm[j-tn[i].ci]+tn[i].ai-j*tn[i].bi);
ans=max(ans,fm[j]);
}
}
printf("%lld",ans);
return 0;
}
P1417 烹调方案
2019-05-10