package com.company;
public class Knapsack {
public static void main(String[] args) {
int []w={0,2,3,4,5};
int []v={0,3,4,5,8};
int sWeight=8;
int [][] dp=new int[w.length][sWeight+1];
for (int i = 0; i <w.length ; i++) {
for (int j = 0; j <=sWeight; j++) {
if(i==0||j==0)
dp[i][j]=0;
}
}
System.out.println(Knapsack(dp,w,v,sWeight));
int i = 0;int j = 0;
for (i=0; i <dp.length ; i++) {
for (j=0; j <dp[i].length ; j++) {
System.out.print(dp[i][j]+"\t");
}
if (j==dp[i].length)
System.out.print("\n");
}
}
public static boolean Knapsack(int [][]dp,int []w,int []v,int sW){
for (int i = 1; i <w.length ; i++) {
for (int j = 1; j <sW+1; j++) {
if(j>=w[i]){
dp[i][j]=Math.max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
}else{
dp[i][j]=dp[i-1][j];
}
}
}
return true;
}
}