#include <iostream>
using namespace std;
const int MAXN = 100000;
int V[MAXN];
int W[MAXN];
int K[MAXN];
int dp[2][MAXN + 1];
int main() {
int S, N;
cin >> S >> N;
for (int i = 0; i < N; i++) {
int Vi, Wi, Ki;
cin >> Vi >> Wi >> Ki;
V[i] = Vi;
W[i] = Wi;
K[i] = Ki;
}
int prev = 0, act = 1;
for (int c = 0; c <= N; c++) {
dp[prev][c] = 0;
}
for (int i = 0; i < N; i++) {
for (int j = 0; j <= S; j++) {
dp[act][j] = dp[prev][j];
for (int qty = 1; qty <= K[i] && qty * W[i] <= j; qty++) {
dp[act][j] = max(dp[act][j],
dp[prev][j - qty * W[i]] + qty * V[i]);
}
}
swap(act, prev);
}
cout << dp[prev][S];
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... |