atcoder#ARC126C. [ARC126C] Maximize GCD

[ARC126C] Maximize GCD

题目描述

N N 項からなる正整数列 A = (A1, A2, , AN) A\ =\ (A_1,\ A_2,\ \ldots,\ A_N) が与えられます。あなたはこの数列に対して、次の操作を 0 0 回以上 K K 回以下行うことができます:

  • i {1,2,,N} i\in\ \{1,2,\ldots,N\} をひとつ選び、Ai A_i 1 1 を加える。

操作後の gcd(A1, A2, , AN) \gcd(A_1,\ A_2,\ \ldots,\ A_N) としてありうる最大値を求めてください。

输入格式

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

N N K K A1 A_1 A2 A_2 \ldots AN A_N

输出格式

操作後の gcd(A1, A2, , AN) \gcd(A_1,\ A_2,\ \ldots,\ A_N) としてありうる最大値を出力してください。

题目大意

给定一个序列 AA,每次操作可以使 Ai+1A_i + 1i[1,n]i \in [1, n]KK 次操作的 ii 可以不同),最多可以做 KK 次。问 gcdA1,A2,...,An\gcd{A_1, A_2, ..., A_n} 的最大值。

给定一个序列 $A$,每次操作可以使 $A_i + 1$ ($i \in [1, n]$,$K$ 次操作的 $i$ 可以不同),最多可以做 $K$ 次。问 $\gcd{A_1, A_2, ..., A_n}$ 的最大值。
3 6
3 4 9
5
3 4
30 10 20
10
5 12345
1 2 3 4 5
2472

提示

制約

  • 2 N 3× 105 2\leq\ N\leq\ 3\times\ 10^5
  • 1 K 1018 1\leq\ K\leq\ 10^{18}
  • 1  Ai 3× 105 1\ \leq\ A_i\leq\ 3\times\ 10^5

Sample Explanation 1

例えば以下のようにして、gcd(A1, A2, A3) = 5 \gcd(A_1,\ A_2,\ A_3)\ =\ 5 を実現できます。 - i = 1 i\ =\ 1 に対して 2 2 回、i = 2 i\ =\ 2 に対して 1 1 回、i=3 i=3 に対して 1 1 回の操作を行う。合計の操作回数は 4 4 回で、K=6 K=6 以下である。 - 操作の結果、A1 = 5 A_1\ =\ 5 , A2 = 5 A_2\ =\ 5 , A3 = 10 A_3\ =\ 10 となり、gcd(A1, A2, A3) = 5 \gcd(A_1,\ A_2,\ A_3)\ =\ 5 である。

Sample Explanation 2

操作を一度も行わないことで、gcd(A1, A2, A3) = 10 \gcd(A_1,\ A_2,\ A_3)\ =\ 10 を実現できます。