#include <bits/stdc++.h>
using namespace std;
//vector<int>v[N];
int dp[100][2000];
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie();
int m,n;
cin>> m>>n;
int a[n+1],b[n+1];
vector<int>v1,v2,k;
for(int i=1,count;i<=n;i++){
cin>> b[i]>>a[i]>>count;
k.push_back(count);
for (int power = 1; power <= count; power *= 2) {
v1.push_back(a[i] * count);
v2.push_back(b[i] * count);
count -= power;
}
if (count > 0) {
v1.push_back(a[i] * count);
v2.push_back(b[i] * count);
}
}
if(n == 1) {
int s = m / a[1] ;
if(s >= k[0]) {
cout << b[1] * k[0] ;
}
else {
cout << b[1] * s ;
}
return 0;
}
for(int i=1;i<=v1.size();i++){
for(int j=1;j<=m;j++){
dp[i][j]=dp[i-1][j];
if(v1[i-1]<=j){
dp[i][j]=max(dp[i][j],dp[i-1][j-v1[i-1]]+v2[i-1]);
}
}
}
cout<< dp[v1.size()][m];
}
# | 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... |