Starting from:

$30

CSE100- Lab 12 Rod Cutting Solved

Rod Cutting
Description In this assignment you are asked to implement a dynamic programming algorithm for the Rod Cutting Problem (chapter 15.1). In the Rod Cutting problem, you are given an integer n ≥ 1, along with a sequence of positive prices, p1,p2,...,pn, where pi is the market price of rod of length i. The goal is to figure out a best way of cutting the given rod of length n to generate the maximum revenue. You can assume that the given prices p1,p2,...,pn are all integers.

Input  The input has the following format. The input starts with n. Then, p1,p2,...,pn follow, one per each line.

Output In the first line, output the maximum revenue (rn), followed by an enter key. In the second line, sequentially output the length of each piece in your optimal cutting, and output -1, followed by a space key; separate two adjacent numbers by a space key.

Examples of input and output

Input

7

1

5

8

9

10

17

17

Output

18

1 6 -1

Alternatively, the second line can be replaced with “6 1 -1”, “2 2 3 -1”, “2 3 2 -1”, or “3 2 2 -1”. That is, any sequence of piece lengths giving the maximum revenue will be considered to be correct.

More products