Submission #1332615

#TimeUsernameProblemLanguageResultExecution timeMemory
1332615lgm_jeetKnapsack (NOI18_knapsack)C++20
73 / 100
1095 ms16108 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
    int S,N;
    cin>>S>>N;

    vector<int> W,V;

    for(int i=0;i<N;i++){
        int v,w,k;
        cin>>v>>w>>k;

        int p=1;
        while(k>0){
            int take=min(p,k);
            W.push_back(w*take);
            V.push_back(v*take);
            k-=take;
            p*=2;
        }
    }

    vector<int> dp(S+1,0);

    for(int i=0;i<W.size();i++){
        for(int j=S;j>=W[i];j--){
            dp[j]=max(dp[j],dp[j-W[i]]+V[i]);
        }
    }

    cout<<dp[S]<<endl;
    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...