Suppose we run a candy factory. Every day, we produce long strands of licorice, which need to be cut into manageable lengths before they can be sold to our customers. Each length of licorice sells for a different price, based on certain economic factors. Since we're enterprising businessmen, we want to maximize the total amount of profit we can obtain from a given length of licorice.

Supposing our customers are only interested in purchasing licorice strands that can be measured in *whole* inches, into what sizes should we cut our rods in order to obtain the maximum profit?

This is more formally known as the **rod-cutting problem**, where we replace "licorice" by "rods". This problem can be formally defined as follows:

**Input:** A set of prices for lengths of rod, $p_1,...,p_n$, each $p_i$ is the price of a rod of length $i$.**Output:** $a_1, ..., a_n$, where each $a_i$ is the maximum profit which can be obtained for a rod of length $i$.

This problem can be solved using dynamic programming. As we know, in order to apply dynamic programming, we must first show that optimal substructure holds. This is typically done using a recurrence relation.

Let $a_i$ be the maximum profit that can be obtained for a rod of length $i$. For convenience, we also define the price of an "empty rod" to be $p_0 = 0$.

Which of the following recurrence relations are correct for this problem?

Select **ALL** that apply.

Select an assignment template