atcoder#ARC073D. [ARC073F] Many Moves

[ARC073F] Many Moves

题目描述

N N 個のマスが一列に並んでいます。マスには順に 1, 2, ..., N 1,\ 2,\ ...,\ N と番号を振ってあるものとします。

あなたはコマを 2 2 つ持っており、最初の時点ではマス A A , B B においてあります。

以下のクエリがQ Q 個与えられるので、順番に処理します。

  • xi x_i が与えられる。2 2 つのコマのどちらかをマス xi x_i に移動させる。どちらを移動させるかは好きに選んで良い。

ただし、コマは 1 1 マス分動くのに 1 1 秒の時間を必要とします。 つまり、マス X X のコマをマス Y Y に動かすには XY |X-Y| 秒必要です。

あなたの目的は、出来る限り速く全てのクエリを処理することです。

なお、クエリ以外でのコマの移動は許されません。 また、クエリの順番を並び替えたり、コマを 2 2 個同時に動かしたりすることも許されません。 ただし、2 2 個のコマが同時に同じマスにいることは許されます。

输入格式

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

N N Q Q A A B B x1 x_1 x2 x_2 ... xQ x_Q

输出格式

全てのクエリを処理するのにかかる最小の時間を X X 秒として、X X を出力する。

题目大意

题意

在一行中有nn个格子,从左往右编号为11nn

22颗棋子,一开始分别位于位置AABB。按顺序给出QQ个要求,每个要求是如下形式:

  • 给出一个位置xix_i,要求将两个棋子中任意一个移动到位置xix_i

将一颗棋子移动一格需要花费11秒,就是说将棋子从XX位置移动到YY位置需要花费XY|X-Y|秒。

为了回答要求,你只能移动棋子,并且同一时刻只能移动一颗棋子。要求的顺序是不可更改的。在同一时间允许两颗棋子在同一个格子内。

输入格式

第一行44个整数,分别为n,Q,A,Bn,Q,A,B

第二行QQ个整数,第ii个整数为xix_i

  • 1n,Q2×1051\leq n,Q\leq 2\times 10^5
  • 1A,Bn1\leq A,B\leq n
  • 1xin1\leq x_i\leq n

输出格式

最小需要多少秒回答全部要求。

8 3 1 8
3 5 1
7
9 2 1 9
5 1
4
9 2 1 9
5 9
4
11 16 8 1
1 1 5 1 11 4 5 2 5 3 3 3 5 5 6 7
21

提示

制約

  • 1  N, Q  200,000 1\ ≦\ N,\ Q\ ≦\ 200,000
  • 1  A, B  N 1\ ≦\ A,\ B\ ≦\ N
  • 1  xi  N 1\ ≦\ x_i\ ≦\ N

Sample Explanation 1

- マス 1 1 のコマをマス 3 3 に動かす - マス 8 8 のコマをマス 5 5 に動かす - マス 3 3 のコマをマス 1 1 に動かす この通りにコマを動かすと 7 7 秒で全てのクエリを処理できます。

Sample Explanation 2

最初に動かすべきはマス 9 9 のコマです。

Sample Explanation 3

最初に動かすべきはマス 1 1 のコマです。