#abc117c. [abc117_c]Streamline

[abc117_c]Streamline

题目描述

我们将在数轴上进行一个单人游戏,使用 NN 个棋子。

首先,我们将每个棋子放在某个整数坐标上。

在这里,可以将多个棋子放在同一个坐标上。

我们的目标是通过重复以下移动来访问所有 MM 个坐标 X1,X2,...,XMX_1, X_2, ..., X_M

移动:选择一个棋子,令 xx 为它的坐标。将该棋子放置在坐标 x+1x+1x1x-1 处。

请注意,我们最初放置棋子的坐标已经被视为访问过的。

找到实现目标所需的最小移动次数。

约束条件

  • 输入中的所有值均为整数。
  • 1N1051 \leq N \leq 10^5
  • 1M1051 \leq M \leq 10^5
  • 105Xi105-10^5 \leq X_i \leq 10^5
  • X1,X2,...,XMX_1, X_2, ..., X_M 均不相同。

输入

从标准输入读取数据,具体格式如下:

NN MM X1X_1 X2X_2 ...... XMX_M

输出

找到实现目标所需的最小移动次数。


示例输入 1

2 5
10 12 1 2 14

示例输出 1

5

可以通过以下五个步骤实现目标,这是实现目标所需的最小移动次数。

  • 初始时,在坐标 111010 处放置两个棋子。
  • 将坐标 11 处的棋子移动到 22 处。
  • 将坐标 1010 处的棋子移动到 1111 处。
  • 将坐标 1111 处的棋子移动到 1212 处。
  • 将坐标 1212 处的棋子移动到 1313 处。
  • 将坐标 1313 处的棋子移动到 1414 处。

示例输入 2

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

示例输出 2

19

示例输入 3

100 1
-100000

示例输出 3

0