#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define pub push_back
#define pob pop_back
#define fi first
#define se second
using namespace std;
typedef long long ll;
const ll Max=1e5+5,D=2e3+5;
ll W,n;
ll dp[Max],app[Max],c[Max],w[Max];
void sub1()
{
ll i,j,k,cnt,ans;
cnt=min(W/w[1],app[1]);
ans=c[1]*cnt;
cout<<ans;
return;
}
int main()
{
fast
memset(dp,0,sizeof(dp));
ll i,j,k;
cin>>W>>n;
for(i=1;i<=n;++i)
cin>>c[i]>>w[i]>>app[i];
if(n==1)
{
sub1();
return 0;
}
for(i=1;i<=n;++i)
{
for(k=1;k<=app[i];++k)
{
for(j=W;j>=w[i];--j)
dp[j]=max(dp[j],dp[j-w[i]]+c[i]);
}
}
/*for(i=1;i<=n;++i)
cout<<dp[i]<<" ";
cout<<"\n";*/
cout<<dp[W];
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... |