#include <bits/stdc++.h>
#define int long long
int value[100010];
int weight[100010];
int amount[100010];
int dpw[2010];//most cost secured from the weight
signed main(){
int s,n;
std::cin >> s >> n;
for(int i=1;i<=n;i++){
std::cin >> value[i] >> weight[i] >> amount[i];
}
for(int i=s;i>=0;i--){
for(int j=1;j<=n;j++){
for(int k=1;k<=std::min(amount[j],s);k++){
if(i-k*weight[j]<0)continue;
dpw[i]=std::max(dpw[i-k*weight[j]]+k*value[i],dpw[i]);
dpw[i]=std::max(dpw[i-1],dpw[i]);
}
}
}
//2000*2000*100000
std::cout << dpw[s];
}
| # | 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... |