ssssbbbbbb @ 2024-07-05 19:14:14
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1000000+10;
int dp[maxn],t,n,ans;
struct node{
int a,b,c;
}cd[100];
bool cmp(node g,node q){
return g.c*q.b>q.c*g.b;
}
signed main(){
cin>>t>>n;
for(int i=1;i<=n;i++) cin>>cd[i].a;
for(int i=1;i<=n;i++) cin>>cd[i].b;
for(int i=1;i<=n;i++) cin>>cd[i].c;
sort(cd+1,cd+1+n,cmp);
for(int i=1;i<=n;i++){
for(int j=t;j>=cd[i].c;j--) dp[j]=max(dp[j],dp[j-cd[i].c]+cd[i].a-j*cd[i].b);
}
for(int i=1;i<=t;i++) ans=max(ans,dp[i]);
cout<<ans<<endl;
return 0;
}
by FarmerDrone @ 2024-09-30 12:46:30
cmp应该写小于吧