Submission #1214841

#TimeUsernameProblemLanguageResultExecution timeMemory
1214841rubixyzKnapsack (NOI18_knapsack)C++20
73 / 100
1096 ms2056 KiB
#include <bits/stdc++.h>

using namespace std;

int main(void) {
    int s, n;
    cin >> s >> n;

    vector<long long> v(n);
    vector<int> w(n), k(n);

    for (int i = 0; i < n; ++i) {
        cin >> v[i] >> w[i] >> k[i];
    }

    vector<long long> dp(s + 1);

    for (int i = 0; i < n; ++i) {
        for (int j = s; j >= 0; --j) {
            for (int l = 1; l <= k[i]; ++l) {
                if (w[i] * l <= j)
                    dp[j] = max(dp[j], (v[i] * l) + dp[j - (w[i] * l)]);
                else
                    break;
            }
        }
    }

    cout << dp.back() << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...