제출 #1347747

#제출 시각아이디문제언어결과실행 시간메모리
1347747dkasabovnKnapsack (NOI18_knapsack)C++20
37 / 100
1095 ms344 KiB
#include <bits/stdc++.h>

#define MOD 1000000007

using namespace std;


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

    vector<int> values(n);
    vector<int> weights(n);
    vector<int> amounts(n);

    for (int i = 0; i < n; i++) {
        cin >> values[i];
        cin >> weights[i];
        cin >> amounts[i];
    }

    vector<int> dp(s+1, 0);
    dp[0] = 0;

    // 2 4 6
    // 3 5 7

    for (int i = 0; i < n; i++) {
        auto value = values[i];
        auto weight = weights[i];

        for (int j = s; j >= 0; j--) {
            auto amount = amounts[i];
            while (amount > 0) {
                if (j >= weight * amount) { 
                    dp[j] = max(dp[j], dp[j - amount * weight] + value * amount);
                }
                amount--;
            }
        }
    }

    cout << dp[s];
}
#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...