atcoder#ABC117C. [ABC117C] Streamline

[ABC117C] Streamline

题目描述

数直線と N N 個のコマを用いて 1 1 人でゲームを行います。

はじめ、これらのコマをそれぞれ好きな整数座標に置きます。

このとき、同じ座標に複数のコマを置いても構いません。

以下の移動を繰り返して、座標 X1, X2, ..., XM X_1,\ X_2,\ ...,\ X_M M M 個の地点全てをいずれかのコマで訪れることが目的です。

移動: コマを 1 1 つ選び、そのコマの座標を x x とする。そのコマを座標 x+1 x+1 もしくは座標 x1 x-1 に移動する。

ただし、最初にコマを置いた座標はその時点で訪れたとみなします。

目的を達成するまでに移動を行う回数の最小値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M X1 X_1 X2 X_2 ... ... XM X_M

输出格式

目的を達成するまでに移動を行う回数の最小値を出力せよ。

题目大意

你有一个数轴和 NN 个棋子。

你可以先将棋子放在数轴的任意整数坐标位置,同一个位置可以放置多于一个棋子。接下来移动棋子,每次移动只能选择一个位于坐标 xx 的棋子,移动到 x+1x+1 或者 x1x−1

你还有 MM 个目标地点 x1,x2,x3,,xmx_1,x_2,x_3,\cdots,x_m ,你要使每个目标地点都至少被 11 个棋子访问到,问至少需要多少次移动。(最初放置棋子的位置也视作访问到)

2 5
10 12 1 2 14
5
3 7
-10 -3 0 9 -100 2 17
19
100 1
-100000
0

提示

制約

  • 入力はすべて整数である。
  • 1  N  105 1\ \leq\ N\ \leq\ 10^5
  • 1  M  105 1\ \leq\ M\ \leq\ 10^5
  • 105  Xi  105 -10^5\ \leq\ X_i\ \leq\ 10^5
  • X1, X2, ..., XM X_1,\ X_2,\ ...,\ X_M は全て異なる。

Sample Explanation 1

以下の手順で 5 5 回移動を行うと目的を達成でき、このときが最小です。 - はじめに 2 2 個のコマをそれぞれ座標 1 1 , 座標 10 10 に置きます。 - 座標 1 1 のコマを座標 2 2 に移動します。 - 座標 10 10 のコマを座標 11 11 に移動します。 - 座標 11 11 のコマを座標 12 12 に移動します。 - 座標 12 12 のコマを座標 13 13 に移動します。 - 座標 13 13 のコマを座標 14 14 に移動します。