配点 : 500 点
問題文
長さ N の整数列 A1,A2,⋯,AN があります。
次の操作を 0 回以上 K 回以下行うことができます。
- i=j なる 1 以上 N 以下の 2 つの整数 i,j を選び、Ai に 1 を足し、Aj に −1 を足す。この操作の後いずれかの要素が負になってもよい。
操作後の A の全ての要素を割り切る正の整数として考えられる値の最大値を計算してください。ただし、正の整数 x が整数 y を割り切るとは、ある整数 z を用いて y=xz と表せる場合を表します。
制約
- 2≤N≤500
- 1≤Ai≤106
- 0≤K≤109
- 入力は全て整数である
入力
入力は以下の形式で標準入力から与えられる。
N K
A1 A2 ⋯ AN−1 AN
出力
操作後の A の全ての要素を割り切る正の整数として考えられる値の最大値を出力せよ。
2 3
8 20
7
例えば以下の操作で、7 が A の全ての要素を割り切るようにできます。
- i=2,j=1 とする。A は (7,21) となる。
また、8 以上の整数が A の全ての要素を割り切るようにはできません。
2 10
3 5
8
例えば、以下のように操作を 5 回行います。
- i=2,j=1 とする。A は (2,6) となる。
- i=2,j=1 とする。A は (1,7) となる。
- i=2,j=1 とする。A は (0,8) となる。
- i=2,j=1 とする。A は (−1,9) となる。
- i=1,j=2 とする。A は (0,8) となる。
このとき、0=8×0,8=8×1 と表せるので、8 は A の全ての要素を割り切ります。また、9 以上の整数が A の全ての要素を割り切るようにはできません。
4 5
10 1 2 22
7
8 7
1 7 5 6 8 2 6 5
5