#include <bits/stdc++.h>
using namespace std;
#define int long long
int dp[(int)1e5+5][(int)2005];
bool dp1[(int)1e5+5][(int)2005];
int32_t main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int s,n;
cin>>s>>n;
vector<int>v(n+1),w(n+1),k(n+1);
for(int i=1; i<=n; i++){
cin>>v[i]>>w[i]>>k[i];
}int mx=0;
if(n==1){
int r=s/w[1];
if(k[1]*w[1]<=s)cout<<k[1]*v[1]<<endl;
else{
for(int i=k[1]; i>=0; i--){
if(i*w[1]<=s){
cout<<i*v[1]<<endl;
break;
}
}
}
}else{
for(int i=1; i<=n; i++){
for(int j=0; j<=s; j++){
dp[i][j]=dp[i-1][j];
if(j-w[i]>=0)dp[i][j]=max(dp[i][j], dp[i-1][j-w[i]]+v[i]);
mx=max(mx, dp[i][j]);
}
}
}
cout<<mx<<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... |