Submission #601396

#TimeUsernameProblemLanguageResultExecution timeMemory
601396codergirlKnapsack (NOI18_knapsack)C++14
0 / 100
1 ms212 KiB
#include <bits/stdc++.h> const int maxn=100005; int c[maxn],value[maxn],num[maxn],dp[maxn]; int V; void ZeroOnePack (int cost,int val){ for(int i=V;i-->cost;) dp[i]=std::max(dp[i],dp[i-cost] + val); return ; } void MultiplePack(int cost, int val, int tot){ int k=1; // binary partition while(k<tot){ ZeroOnePack(k * cost, k * val); tot-=k; k*=2; } ZeroOnePack(tot*cost,tot*val); return ; } int main(){ int n; std::cin>>V>>n; // knapsack size V, n kinds of items for(int i=1;i<=n;i++) std::cin>>value[i]>>c[i]>>num[i]; // value, weight, quantity for(int i=1;i<=n;i++) MultiplePack(c[i], value[i], num[i]); std::cout<<dp[V]<<'\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...