I stopped doing homework many years ago :)
This kind of problem doesn't have any rules. There will be an optimum solution for each scenario. The trick is being able to search the possible result space in a reasonable timeframe.
The problem I'm having is in generating all the possible combinations, because the optimum solution for each person may involve some fragments from all price levels or fragments from just a few price levels.
I'm thinking that a recursive approach might work, but this algorithm is a bit trickier to devise than factorial, etc.!