Buy and Sell n-times

Goal

Given is the price-development of an arbitrary stock.

stock-price over time

Suppose you have perfect knowledge and are able to buy and sell the stock multiple times. Write an algorithm that outputs the maximum profit that can be made by exactly n sales.

  • The price-development is given for an arbitrary number of days.
  • A stock can only be sold on the next day.
  • Stock-prices are given as integers
  • Each buy must be made on another date after the previous sale

Input

A blank-separated array of numbers.
The first number is the number of sales allowed.
All following numbers are stock-prices.

Each position symbolises the stock-price of a given day.

Output

The maximum profit that can be made within that period by n sales.

Constraints

  • 2 <= n <= 10
  • 2 * n <= days with stock-prices <= 50
  • 1 <= stock-price <= 2,147,483,647

Example

Input: 3 12 11 13 9 12 8 14 13 15
where n is 3

Output: 12

Description
No description provided
Readme 116 KiB
Languages
Java 65.4%
CSV 18%
Gradle 16.6%