Submission #749186

#TimeUsernameProblemLanguageResultExecution timeMemory
749186hippo123Knapsack (NOI18_knapsack)C++17
0 / 100
1074 ms340 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int s, n; cin>>s>>n; vector<int> v(n+1); vector<int> w(n+1); vector<int> k(n+1); vector<vector<int>> dp(s+1, vector<int>(n+1, 0)); for (int i=1; i<=n; i++){ cin>>v[i]>>w[i]>>k[i]; } cout<<k[1]<<endl; for (int i=1; i<=n; i++){ for (int m=1; m<=k[i]; m++){ for (int j=s; j>=0; j--){ if(j-w[i]>=0) { if(dp[j-w[i]][i-1]>0) dp[j][i] = max(dp[j][i], dp[j-w[i]][i-1]+v[i]); if( dp[j-w[i]][i]>0 || (j-w[i]==0 && m==1)) dp[j][i] = max(dp[j][i], dp[j-w[i]][i]+v[i]); } } } for (int j=1; j<=s; j++) cout<<dp[j][i]<<" "; cout<<endl; } int cmax=0; for (int j=s; j>0; j--){ if(dp[j][n]>0) { cmax=max(cmax, dp[j][n]); break; } } cout<<cmax; }
#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...