Given a rod of length `n` inches and an array of prices `price[]` that contains prices of all pieces of size smaller than n. Write a program to determine the maximum revenue obtainable by cutting up the rod and selling the pieces.

Problem Note

• You can perform these cuts in any order.
• After a cut, the rod gets divided into two smaller sub-rods.
• Two different sequences of cuts may give maximum revenue.

Example 1

``````If length of the rod and the prices of different pieces are given
Input: n = 8, price[] = [1, 5, 8, 9, 10, 17, 17, 20]

length | 1   2   3   4   5   6   7   8
---------------------------------------
price  | 1   5   8   9  10  17  17  20

Output: 22
Explanation: The maximum obtainable revenue is 22.(By cutting the rod in two pieces of lengths 2 and 6)``````

Example 2

``````Input: n = 8, price[] = [3, 5, 8, 9, 10, 17, 17, 20]

length | 1   2   3   4   5   6   7   8
--------------------------------------
price  | 3   5   8   9  10  17  17  20

Output: 24
Explanation: The maximum obtainable revenue is 24.(By cutting the rod in eight pieces of lengths 1)``````