11178. На координатній прямій


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

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

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

Зіграємо у логічну гру. У нас є числова пряма та \(N\) шашок. Спочатко ми розмістимо наявні шашки на числовій прямій з довільними вибраними координатами (можна розмітити декілька шашок під однієб координатою).

Завдання полягає в тому, щоб відвідати шашками \(M\) точок з координатами \(X_1, X_2, ... X_M\) виконуючи таких хід:

  • вибираємо шашку з координатою \(x\) і переміщаємо її у точку з координатою \(x-1\) або \(x+1\)

Будемо вважати початкові координати шашок як уже відвідані.

Знайдіть мінімальну кількість ходів, необхідну для виконання завдання.

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

Перший рядок вхідного потоку містить цілі числа \(N,M\) (\(1 \le N,M \le 10^5\)).

Наступний рядок містить цілі числа \(X_1, X_2, ... X_M\) (\(-10^5 \le X_i \le 10^5\)), які розділяються пропуском.

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

У вихідний потік вивести мінімальну кількість ходів, необхідну для виконання завдання.

Примітка

До прикладу 1:

Мета може бути досягнута за п'ять ходів наступним чином:

Спочатку помістіть дві шашки в точки 1 і 10.

Перемістіть шашку з точки 1 до 2.

Перемістіть шашку з точки 10 до 11.

Перемістіть шашку з точки 11 до 12.

Перемістіть шашку з точки 12 до 13.

Перемістіть шашку з точки 13 до 14.

Це мінімальна кількість ходів.

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

2 5
10 12 1 2 14

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

5

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

3 7
-10 -3 0 9 -100 2 17

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

19

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

100 1
-100000

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

0

Коментарі

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