Consider the following algorithm to make change. The algorithm takes as input:
• tr, the amount of change to make. • p, the base of the denomination set (the “coins” are powers of p).
IN: n, p E N = 1, 2, … p > 1 1: D ; 2: C 3: r 4—n 4: while r > 0 do 5: x 4— max(x E Dix
(a) Which of the following best describes the algorithm above (circle one): divide-and-conquer dynamic greedy
(b) Prove that the algorithm is fully correct. You should start by finding a suitable loop invariant for partial correctness. Note that for any p > I:
pn = 1 + E (ps(p— I)) ce