AT_abc255_d [ABC255D] ±1 Operation 2
Description
[problemUrl]: https://atcoder.jp/contests/abc255/tasks/abc255_d
長さ $ N $ の数列 $ A=(A_1,A_2,\dots,A_N) $ が与えられます。この $ A $ に以下を施すことを「操作」と呼びます。
- まず、 $ 1\ \le\ i\ \le\ N $ を満たす整数 $ i $ を選択する。
- 次に、以下の $ 2 $ つのうちどちらかを選択し、実行する。
- $ A_i $ に $ 1 $ を加算する。
- $ A_i $ から $ 1 $ を減算する。
$ Q $ 個の質問に答えてください。
$ i $ 個目の質問は以下です。
- 「操作」を $ 0 $ 回以上何度でも使って $ A $ の要素を全て $ X_i $ にする時、必要な「操作」の最小回数を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $ $ X_1 $ $ X_2 $ $ \vdots $ $ X_Q $
Output Format
$ Q $ 行にわたって出力せよ。
出力のうち $ i $ 行目には、 $ i $ 個目の質問に対する答えを整数として出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数
- $ 1\ \le\ N,Q\ \le\ 2\ \times\ 10^5 $
- $ 0\ \le\ A_i\ \le\ 10^9 $
- $ 0\ \le\ X_i\ \le\ 10^9 $
### Sample Explanation 1
$ A=(6,11,2,5,5) $ であり、この入力には $ 3 $ つの質問が含まれます。 $ 1 $ つ目の質問について、 $ A $ に以下のように $ 10 $ 回の「操作」を施すことで、 $ A $ の要素を全て $ 5 $ にすることができます。 - $ A_1 $ から $ 1 $ 減算する。 - $ A_2 $ から $ 1 $ 減算することを $ 6 $ 度繰り返す。 - $ A_3 $ に $ 1 $ 加算することを $ 3 $ 度繰り返す。 $ 9 $ 回以下の「操作」で $ A $ の要素を全て $ 5 $ にすることはできません。 $ 2 $ つ目の質問について、 $ A $ に $ 71 $ 回の「操作」を施すことで、 $ A $ の要素を全て $ 20 $ にすることができます。 $ 3 $ つ目の質問について、 $ A $ に $ 29 $ 回の「操作」を施すことで、 $ A $ の要素を全て $ 0 $ にすることができます。
### Sample Explanation 2
出力が $ 32 $bit 整数に収まらない場合もあります。