atcoder#ABC255D. [ABC255D] ±1 Operation 2

[ABC255D] ±1 Operation 2

配点 : 400400

問題文

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

  • まず、 1iN1 \le i \le N を満たす整数 ii を選択する。
  • 次に、以下の 22 つのうちどちらかを選択し、実行する。- AiA_i11 を加算する。
    • AiA_i から 11 を減算する。

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

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

制約

  • 入力は全て整数
  • 1N,Q2×1051 \le N,Q \le 2 \times 10^5
  • 0Ai1090 \le A_i \le 10^9
  • 0Xi1090 \le X_i \le 10^9

入力

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

NN QQ

A1A_1 A2A_2 \dots ANA_N

X1X_1

X2X_2

\vdots

XQX_Q

出力

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

5 3
6 11 2 5 5
5
20
0
10
71
29

A=(6,11,2,5,5)A=(6,11,2,5,5) であり、この入力には 33 つの質問が含まれます。

11 つ目の質問について、 AA に以下のように 1010 回の「操作」を施すことで、 AA の要素を全て 55 にすることができます。

  • A1A_1 から 11 減算する。
  • A2A_2 から 11 減算することを 66 度繰り返す。
  • A3A_311 加算することを 33 度繰り返す。

99 回以下の「操作」で AA の要素を全て 55 にすることはできません。

22 つ目の質問について、 AA7171 回の「操作」を施すことで、 AA の要素を全て 2020 にすることができます。

33 つ目の質問について、 AA2929 回の「操作」を施すことで、 AA の要素を全て 00 にすることができます。

10 5
1000000000 314159265 271828182 141421356 161803398 0 777777777 255255255 536870912 998244353
555555555
321654987
1000000000
789456123
0
3316905982
2811735560
5542639502
4275864946
4457360498

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