static int max(int a, int b)
static int knapSack(int W, int[] wt,
int[, ] K = new int[n + 1, W + 1];
+ K[i - 1, w - wt[i - 1]],
static int knapSackhHard(int W, int[] wt,
return knapSackhHard(W, wt,
+ knapSackhHard(W - wt[n - 1], wt,
knapSackhHard(W, wt, val, n - 1));
int[] val = new int[] { 100, 3, 7,37 };
int[] wt = new int[] { 10000,5000, 8000,9000 };
Console.WriteLine(knapSack(W, wt, val, n));
Console.WriteLine(knapSackhHard(W, wt, val, n));