Submission #1273557

#TimeUsernameProblemLanguageResultExecution timeMemory
127355744100Knapsack (NOI18_knapsack)C++20
12 / 100
2 ms1236 KiB
#include <bits/stdc++.h> #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define pub push_back #define pob pop_back #define fi first #define se second using namespace std; typedef long long ll; const ll Max=1e5+5,D=2e3+5; ll W,n; ll dp[Max],app[Max],c[Max],w[Max]; void sub1() { ll i,j,k,cnt,ans; cnt=min(W/w[1],app[1]); ans=c[1]*cnt; cout<<ans; return; } int main() { fast memset(dp,0,sizeof(dp)); ll i,j,k,cnt,ans; cin>>W>>n; for(i=1;i<=n;++i) cin>>c[i]>>w[i]>>app[i]; if(n==1) { sub1(); return 0; } for(i=1;i<=n;++i) { cnt=min(W/w[i],app[i]); for(k=1;k<=cnt;++k) { for(j=W;j>=w[i];--j) dp[j]=max(dp[j],dp[j-w[i]]+c[i]); } } /*for(i=1;i<=n;++i) cout<<dp[i]<<" "; cout<<"\n";*/ //cout<<dp[W]; for(i=1;i<=W;++i) ans=max(ans,dp[i]); cout<<ans; 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...