Submission #856560

#TimeUsernameProblemLanguageResultExecution timeMemory
856560owenlolKnapsack (NOI18_knapsack)C++17
0 / 100
2 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int S, N;
    cin >> S >> N;
    vector<int> ws;
    vector<int> vs;
    vector<int> ks;
    for (int i=0; i<N; i++) {
        int v, w, k;
        cin >> v >> w >> k;
        vs.push_back(v);
        ws.push_back(w);
        ks.push_back(k);
    }
    
    vector<vector<int>> dp(S+1, vector<int>(N+1));
    for (int i=0; i<S; i++) {
        dp[i][0] = 0;
    }
    for (int i=0; i<N; i++) {
        dp[0][i] = 0;
    }
    for (int s=1; s<S+1; s++) {
        for (int i=1; i<N+1; i++) {
            for (int r=1; r<=ks[i]; r++) {
                if (s >= r*ws[i]) {
                    dp[s][i] = max(dp[s][i], dp[s-r*ws[i]][i-1] + r*vs[i]);
                }
            }
            dp[s][i] = max(dp[s][i], dp[s][i-1]);

        }
    }
    for (auto ln : dp) {
        for (auto e : ln) {
            cout << e << " ";
        }
        cout << endl;
    }
    cout << dp[S][N];
    return 0;
}
#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...