knapsack problem algorithm
knapsack 0/1 varient