\documentclass[12pt]{article}

\usepackage{fullpage}

\begin{document}
\begin{center}
\bf
Algorithms Section 2\\
Spring 2003\\
\rm
Homework 5b\\
Due Tuesday, February 25\\
\end{center}

\begin{enumerate}

\item \textbf{[20 Points]  Implementing the ``Change'' Dynamic Program.}
In class we saw a dynamic programming algorithm which takes as input a coinage system
and an amount of money to be made out of coins in this coinage system.  The algorithm
returns the smallest number of coins required to make up this amount.
Your job is to implement the algorithm.
Your program should first ask the user to specify the number of coins in the coinage system.
Then, the user should be prompted to enter the value of each coinage from smallest to largest.  
(The program should report an error if the user fails to do this in order or if the first
coin does not have value 1.) Finally, the program asks the user for the amount $A$ that needs
to be changed into coins. The program should then report the minimum possible number of coins that can be used and the
\emph{actual list of coins used  in this optimal solution}.  Turn in a printout and an example
of your program running with input coinages $1, 5, 30, 40, 60$ and the amount $A=70$.

\item \textbf{[10 Points] Multipop Stacks with Automatic Backup!}
CLRS Exercise 17.2-1 (page 412).

\item \textbf{[15 Points] Binary Counters with Reset!}
CLRS Exercise 17.2-3 (page 412).



\end{enumerate}


\end{document}

