#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
using namespace std;
const ll mx = 1e5+7, inf=-1;
ll s, n;
ll v[mx], w[mx], k[mx];
ll dp[mx][2005];
int main(){
cin>>s>>n;
if(n==1){
ll vv, ww, kk; cin>>vv>>ww>>kk;
cout<<min(s/ww*vv, kk*vv)<<endl;
return 0;
}
for(ll i=0;i<=n;i++) dp[i][0]=0;
for(ll i=0;i<=s;i++) dp[0][i]=0;
for(ll i=1;i<=n;i++) cin>>v[i]>>w[i]>>k[i];
for(ll j=1;j<=s;j++){
for(ll i=1;i<=n;i++){
dp[i][j]=dp[i-1][j];
ll temp=0;
if(j-w[i]>=0) temp=dp[i-1][j-w[i]]+v[i];
dp[i][j]=max(dp[i][j], temp);
}
}
cout<<dp[n][s]<<endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |