Submission #1254491

#TimeUsernameProblemLanguageResultExecution timeMemory
1254491shakilinnovateKnapsack (NOI18_knapsack)C++20
73 / 100
1095 ms412 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

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

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

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

        for(ll cnt=1;k>0;cnt<<=1)
        {
            ll take=min(cnt,k);
            k-=take;

            ll tlt_v=v*take;
            ll tlt_w=w*take;

            for(ll j=S;j>=tlt_w;j--)
            {
                dp[j]=max(dp[j],dp[j-tlt_w]+tlt_v);
            }
        }
    }

    cout<<*max_element(dp.begin(),dp.end())<<endl;
}
#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...