#ATabc117c. [ABC117C] Streamline

[ABC117C] Streamline

AT_abc117_c [ABC117C] Streamline

题目描述

在数轴上,有 NN 个棋子,你需要用这 NN 个棋子一个人进行游戏。

一开始,你可以将这些棋子分别放在任意整数坐标上。

此时,允许多个棋子放在同一个坐标上。

你需要通过反复进行如下的“移动”操作,使得坐标 X1,X2,...,XMX_1, X_2, ..., X_MMM 个点都被至少一个棋子访问过。

移动操作:选择一个棋子,假设它当前在坐标 xx,你可以将它移动到 x+1x+1x1x-1

注意,棋子最初放置的位置也视为已经访问过。

请你求出,为了达成目标,所需的最小移动次数。

输入格式

输入通过标准输入按以下格式给出。

NN MM X1X_1 X2X_2 ...... XMX_M

输出格式

输出达成目标所需的最小移动次数。

样例 1

输入

2 5
10 12 1 2 14

输出

5

样例 2

输入

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

输出

19

样例 3

输入

100 1
-100000

输出

0

说明/提示

限制条件

  • 所有输入均为整数。
  • 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 均互不相同。

样例解释 1

按照以下步骤移动 55 次可以达成目标,并且这是最小次数。

  • 首先将 22 个棋子分别放在坐标 11 和坐标 1010
  • 将坐标 11 的棋子移动到坐标 22
  • 将坐标 1010 的棋子依次移动到 1111121213131414
  • 总共移动 55 次。

由 ChatGPT 4.1 翻译