#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=0;i<=s;i++)std::cout << dpw[i] << ' ';
//std::cout << '\n';
for(int j=1;j<=n;j++){
for(int i=s;i>=0;i--)
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[j],dpw[i]);
//std::cout << dpw[i] << ' ' << i << ' ' << k << "\\\\n";
//dpw[i]=std::max(dpw[i-1],dpw[i]);
}
//for(int i=0;i<=s;i++)std::cout << dpw[i] << ' ';
//std::cout << '\n';
}
//for(int i=0;i<=s;i++)std::cout << 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... |