atcoder#ABC136E. [ABC136E] Max GCD

[ABC136E] Max GCD

题目描述

長さ N N の整数列 A1, A2, , AN A_1,\ A_2,\ \cdots,\ A_N があります。

次の操作を 0 0 回以上 K K 回以下行うことができます。

  • i  j i\ \neq\ j なる 1 1 以上 N N 以下の 2 2 つの整数 i, j i,\ j を選び、Ai A_i 1 1 を足し、Aj A_j 1 -1 を足す。この操作の後いずれかの要素が負になってもよい。

操作後の A A の全ての要素を割り切る正の整数として考えられる値の最大値を計算してください。ただし、正の整数 x x が整数 y y を割り切るとは、ある整数 z z を用いて y = xz y\ =\ xz と表せる場合を表します。

输入格式

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

N N K K A1 A_1 A2 A_2 \cdots AN1 A_{N-1} AN A_{N}

输出格式

操作後の A A の全ての要素を割り切る正の整数として考えられる値の最大値を出力せよ。

题目大意

给定一个长度为 NN 的整数序列:A1,A2,,AnA_1, A_2, \ldots, A_n

您可以执行以下操作 0K0 \sim K 次:

选择两个整数 iijj,满足 iji \ne j 并且 1i,jN1 \le i, j \le N。令 AiA_i 加上 11,令 AjA_j 减去 11,可能产生负的元素。

计算在执行完操作后,整除 AA 中每个元素的最大可能正整数。这里正整数 xx 整除整数 yy 当且仅当存在一个整数 zz,使得 y=xzy=xz

2 3
8 20
7
2 10
3 5
8
4 5
10 1 2 22
7
8 7
1 7 5 6 8 2 6 5
5

提示

制約

  • 2  N  500 2\ \leq\ N\ \leq\ 500
  • 1  Ai  106 1\ \leq\ A_i\ \leq\ 10^6
  • 0  K  109 0\ \leq\ K\ \leq\ 10^9
  • 入力は全て整数である

Sample Explanation 1

例えば以下の操作で、7 7 A A の全ての要素を割り切るようにできます。 - i = 2, j = 1 i\ =\ 2,\ j\ =\ 1 とする。A A (7, 21) (7,\ 21) となる。 また、8 8 以上の整数が A A の全ての要素を割り切るようにはできません。

Sample Explanation 2

例えば、以下のように操作を 5 5 回行います。 - i = 2, j = 1 i\ =\ 2,\ j\ =\ 1 とする。A A (2, 6) (2,\ 6) となる。 - i = 2, j = 1 i\ =\ 2,\ j\ =\ 1 とする。A A (1, 7) (1,\ 7) となる。 - i = 2, j = 1 i\ =\ 2,\ j\ =\ 1 とする。A A (0, 8) (0,\ 8) となる。 - i = 2, j = 1 i\ =\ 2,\ j\ =\ 1 とする。A A (1, 9) (-1,\ 9) となる。 - i = 1, j = 2 i\ =\ 1,\ j\ =\ 2 とする。A A (0, 8) (0,\ 8) となる。 このとき、0 = 8 × 0, 8 = 8 × 1 0\ =\ 8\ \times\ 0,\ 8\ =\ 8\ \times\ 1 と表せるので、8 8 A A の全ての要素を割り切ります。また、9 9 以上の整数が A A の全ての要素を割り切るようにはできません。