AT_arc126_c [ARC126C] Maximize GCD
Description
[problemUrl]: https://atcoder.jp/contests/arc126/tasks/arc126_c
$ N $ 項からなる正整数列 $ A\ =\ (A_1,\ A_2,\ \ldots,\ A_N) $ が与えられます。あなたはこの数列に対して、次の操作を $ 0 $ 回以上 $ K $ 回以下行うことができます:
- $ i\in\ \{1,2,\ldots,N\} $ をひとつ選び、$ A_i $ に $ 1 $ を加える。
操作後の $ \gcd(A_1,\ A_2,\ \ldots,\ A_N) $ としてありうる最大値を求めてください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ K $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
操作後の $ \gcd(A_1,\ A_2,\ \ldots,\ A_N) $ としてありうる最大値を出力してください。
Explanation/Hint
### 制約
- $ 2\leq\ N\leq\ 3\times\ 10^5 $
- $ 1\leq\ K\leq\ 10^{18} $
- $ 1\ \leq\ A_i\leq\ 3\times\ 10^5 $
### Sample Explanation 1
例えば以下のようにして、$ \gcd(A_1,\ A_2,\ A_3)\ =\ 5 $ を実現できます。 - $ i\ =\ 1 $ に対して $ 2 $ 回、$ i\ =\ 2 $ に対して $ 1 $ 回、$ i=3 $ に対して $ 1 $ 回の操作を行う。合計の操作回数は $ 4 $ 回で、$ K=6 $ 以下である。 - 操作の結果、$ A_1\ =\ 5 $, $ A_2\ =\ 5 $, $ A_3\ =\ 10 $ となり、$ \gcd(A_1,\ A_2,\ A_3)\ =\ 5 $ である。
### Sample Explanation 2
操作を一度も行わないことで、$ \gcd(A_1,\ A_2,\ A_3)\ =\ 10 $ を実現できます。