Background
Given a set of items, each with a weight and a value, and a knapsack with a limited capacity, determine the combination of items that maximises the total value while not exceeding the capacity of the knapsack.
The items are represented as a list of tuples where each tuple contains the weight and value of an item. The knapsack capacity is given as an input to the program.
Each item has a quantity of one.