EduBrick

M. Самый дорогой распил

2000 мс · 256 МБ · всё или ничего

Как классная задача про распил бруса, но найти надо наибольшую возможную стоимость - то есть худший план.

Динамика та же, минимум меняется на максимум. Это стоит проделать не ради результата, а ради проверки понимания: если ваша динамика была написана правильно, замена одной операции ничего не сломает; если где-то была вкраплена жадность, она развалится.

Формула:

dp[i][j]=(cj−ci)+max⁡i<k<j(dp[i][k]+dp[k][j])dp[i][j] = (c_j - c_i) + \max_{i < k < j} \bigl( dp[i][k] + dp[k][j] \bigr)

Слагаемое cj−cic_j - c_i остаётся снаружи: цена первого распила не зависит от того, где он сделан.

Формат ввода

В первой строке - числа LL и NN (2≤L≤1062 \le L \le 10^6, 1≤N≤1001 \le N \le 100).

Во второй строке - NN чисел CiC_i в строго возрастающем порядке.

Формат вывода

Одно число - наибольшая стоимость распила.

Примеры

ввод
10 3
2 4 7
вывод
24
ввод
2 1
1
вывод
2
Войдите, чтобы отправлять решения.