#AT1303. C - Streamline

C - Streamline

C - 简化

得分:300 分

题目描述

我们要玩一款使用数轴和 $N$ 个棋子的单人游戏。

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

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

我们的目标是通过重复以下移动来访问所有 $M$ 个坐标 $X_1, X_2, ..., X_M$:

移动:选择一个棋子,设其坐标为 $x$。将该棋子放置在坐标 $x+1$ 或 $x-1$ 处。

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

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

约束条件

  • 输入中的所有值都是整数。
  • $1 \leq N \leq 10^5$
  • $1 \leq M \leq 10^5$
  • $-10^5 \leq X_i \leq 10^5$
  • $X_1, X_2, ..., X_M$ 互不相同。

输入

输入使用以下格式从标准输入给出:

NN MM

X1X_1 X2X_2 ...... XMX_M

输出

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


2 5
10 12 1 2 14
5

目标可以在五次移动中实现如下,并且这是所需的最小移动次数。

  • 起初,将两个棋子放在坐标 $1$ 和 $10$。
  • 将坐标为 $1$ 的棋子移动到 $2$。
  • 将坐标为 $10$ 的棋子移动到 $11$。
  • 将坐标为 $11$ 的棋子移动到 $12$。
  • 将坐标为 $12$ 的棋子移动到 $13$。
  • 将坐标为 $13$ 的棋子移动到 $14$。

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

100 1
-100000
0