#include <bits/stdc++.h>
using namespace std;
int main() {
long long s, n; cin >> s >> n;
vector<long long> w(n+1), p(n+1),k(n+1);
for (long long i = 1; i <= n; i++) {
cin >> p[i] >> w[i] >> k[i];
}
vector<vector<long long>> dp(n+1, vector<long long>(s+1, -INT_MAX));
for (long long i = 0; i <= s; i++) {
dp[0][i] = 0;
}
for (long long i = 1; i <= n; i++) {
for (long long c = 1; c <= s; ++c) {
dp[i][c] = dp[i-1][c];
for (long long l = min(k[i], c / w[i]); l >= 1; --l) {
dp[i][c] = max(dp[i][c], dp[i-1][c - l * w[i]] + l * p[i]);
}
}
}
cout << *std::max_element(dp.back().begin(), dp.back().end()) << 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... |