

If( const bool nothingToSolve = !maxWeight_ || items_.empty()) MaxColumnIndex_(task.getItems().size() - 1),Ĭache_(task.getMaxWeight() * task.getItems().size()), Impl( const Task & task, Solution & solution) :

#include #include #include #include #include #include using std ::cout Initially taken from C but than fixed and refactored. Which items does the tourist carry in his knapsack so that their total weight does not exceed 4 kg, and their total value is maximised?Ĭ++ DP solution. He may not cut the items, so he can only take whole units of any item. The tourist can choose to take any combination of items from the list, and some number of each item is available (see the column “Piece(s)” of the list!). This is the list: Table of potential knapsack items item The list contains which items are the wanted things for the trip, what is the weight and value of an item, and how many units does he have from each items.

The value represents how important the thing for the tourist. He creates a list of what he wants to bring for the trip, but the total weight of all items is too much. He has a good knapsack for carrying the things, but he knows that he can carry only 4 kg weight in his knapsack, because they will make the trip from morning to evening. They will go to the mountains to see the wonders of nature. A tourist wants to make a good trip at the weekend with his friends.
