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...