10286: Пилорама


Відправити розв'язок

Бали: 100 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Brain****, C, C++, Java, Pascal, Python, v8js

Вам необхідно розпиляти дерев'яну дошку на кілька шматків в заданих місцях. Майстер берез \(K\) гривень, за розпилювання шматка довжиною \(K\) метрів на 2 частини.
Різний порядок розпилювання дає різну ціну замовлення.
Наприклад, якщо є дошка довжиною 10 метрів, яку потрібно розпиляти на відстані 2, 4 і 7 метрів від початку.
Якщо спочатку розпиляти на відмітці 2 м, потім 4 м, і потім 7 м - це буде коштувати 10+8+6 = 24 грн. (Бо спочатку довжина дошки яку розпилювали була 10 м, потім 8 м, потім 6 м).
А якщо розпиляти спочатку на відмінці 4 м (дошка розпадеться на дві частини 4 і 6 метрів), а потім на відмітках 2 м і 7 м, то ціна буде 10+4+6=20 грн.

Визначіть мінімальну вартість розпила дошки на задачі частини.

Формат вхідних даних

Перший рядок містить цілечисло \(L\) (\(2 \le L \le 10^6\)) - довжину дошки, і ціле число \(N\) (\(1 \le N \le 100\)) - кількість місць для розпилювання.
В другмоу рядку записано \(N\) цілих чисел \(Ci\) (\(0 < Ci < L\)) у зростаючому порядку - місця .в яких потрібно зробити розпилювання.

Формат вихідних даних

Виведіть єдине число - мінімальну вартість розпилювання.

Приклад вхідних даних

10 3
2 4 7

Приклад вихідних даних

20

Коментарі

Ще немає коментарів.