100 atcoder#ABC160C. [ABC160C] Traveling Salesman around Lake

[ABC160C] Traveling Salesman around Lake

题目描述

1 1 K K メートルの円形の湖があり、その周りに N N 軒の家があります。

i i 番目の家は、湖の北端から時計回りに Ai A_i メートルの位置にあります。

家の間の移動は、湖の周りに沿ってのみ行えます。

いずれかの家から出発して N N 軒すべての家を訪ねるための最短移動距離を求めてください。

输入格式

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

K K N N A1 A_1 A2 A_2 ... ... AN A_N

输出格式

いずれかの家から出発して N N 軒すべての家を訪ねるための最短移動距離を出力せよ。

题目大意

一个周长为 KK 的环形湖泊,湖泊边有 NN 户住宅,第 ii 户住宅位于从正北开始顺时针 AiA_i 的位置。

你可以从任意位置开始,以任意方式走,但你只能在湖泊边上走,求走过所有住宅的最短路程。

  • 2K1062\le K\le 10^6
  • 2N2×1052\le N\le 2\times 10^5
  • 0Ai<<An<K0\le A_i<\dots<A_n<K
20 3
5 10 15
10
20 3
0 5 15
10

提示

制約

  • 2  K  106 2\ \leq\ K\ \leq\ 10^6
  • 2  N  2 × 105 2\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 0  A1 < ... < AN < K 0\ \leq\ A_1\ <\ ...\ <\ A_N\ <\ K
  • 入力中のすべての値は整数である。

Sample Explanation 1

1 1 番目の家から出発し、2 2 番目、3 3 番目の家へ順に移動すると移動距離が 10 10 になります。

Sample Explanation 2

2 2 番目の家から出発し、1 1 番目、3 3 番目の家へ順に移動すると移動距離が 10 10 になります。