atcoder#ABC255D. [ABC255D] ±1 Operation 2

[ABC255D] ±1 Operation 2

题目描述

長さ N N の数列 A=(A1,A2,,AN) A=(A_1,A_2,\dots,A_N) が与えられます。この A A に以下を施すことを「操作」と呼びます。

  • まず、 1  i  N 1\ \le\ i\ \le\ N を満たす整数 i i を選択する。
  • 次に、以下の 2 2 つのうちどちらかを選択し、実行する。
    • Ai A_i 1 1 を加算する。
    • Ai A_i から 1 1 を減算する。

Q Q 個の質問に答えてください。
i i 個目の質問は以下です。

  • 「操作」を 0 0 回以上何度でも使って A A の要素を全て Xi X_i にする時、必要な「操作」の最小回数を求めてください。

输入格式

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

N N Q Q A1 A_1 A2 A_2 \dots AN A_N X1 X_1 X2 X_2 \vdots XQ X_Q

输出格式

Q Q 行にわたって出力せよ。
出力のうち i i 行目には、 i i 個目の質問に対する答えを整数として出力せよ。

题目大意

给定序列 an a_n ,存在两种操作,aiai1 a_i \leftarrow a_i - 1 aiai+1 a_i \leftarrow a_i + 1 q q 次独立询问给定 x x ,求将原序列所有数均变为 x x 需要多少次操作。

5 3
6 11 2 5 5
5
20
0
10
71
29
10 5
1000000000 314159265 271828182 141421356 161803398 0 777777777 255255255 536870912 998244353
555555555
321654987
1000000000
789456123
0
3316905982
2811735560
5542639502
4275864946
4457360498

提示

制約

  • 入力は全て整数
  • 1  N,Q  2 × 105 1\ \le\ N,Q\ \le\ 2\ \times\ 10^5
  • 0  Ai  109 0\ \le\ A_i\ \le\ 10^9
  • 0  Xi  109 0\ \le\ X_i\ \le\ 10^9

Sample Explanation 1

A=(6,11,2,5,5) A=(6,11,2,5,5) であり、この入力には 3 3 つの質問が含まれます。 1 1 つ目の質問について、 A A に以下のように 10 10 回の「操作」を施すことで、 A A の要素を全て 5 5 にすることができます。 - A1 A_1 から 1 1 減算する。 - A2 A_2 から 1 1 減算することを 6 6 度繰り返す。 - A3 A_3 1 1 加算することを 3 3 度繰り返す。 9 9 回以下の「操作」で A A の要素を全て 5 5 にすることはできません。 2 2 つ目の質問について、 A A 71 71 回の「操作」を施すことで、 A A の要素を全て 20 20 にすることができます。 3 3 つ目の質問について、 A A 29 29 回の「操作」を施すことで、 A A の要素を全て 0 0 にすることができます。

Sample Explanation 2

出力が 32 32 bit 整数に収まらない場合もあります。