Submission #1313975

#TimeUsernameProblemLanguageResultExecution timeMemory
1313975nambanana987Knapsack (NOI18_knapsack)C++20
73 / 100
1094 ms2744 KiB
#include <bits/stdc++.h> #include <climits> using namespace std; #define f first #define s second #define all(a) a.begin(),a.end() #define sz(a) (int)a.size() #define int long long struct info{ int v,w,k; }; const int N=1e5+5; info M[N]; int s,n; int dp[2000+5]; void solve(){ cin>>s>>n; int ans=0; for(int i=1;i<=n;++i) cin>>M[i].v>>M[i].w>>M[i].k; for(int i=1;i<=n;++i){ int remain=M[i].k; for(int k=1;remain>0;k<<=1){ int take=min(k,remain); int wei=M[i].w*take,val=M[i].v*take; remain-=take; if(wei>s) continue; for(int j=s;j>=wei;--j){ dp[j]=max(dp[j],dp[j-wei]+val); ans=max(ans,dp[j]); } } } cout<<ans; } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0); int T=1; while(T--) solve(); }
#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...