该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
Lucy 有一个长度为 n 的序列 A,现在他想把序列 A 划分成至少 2 段。
Lucy 定义 li,ri 表示划分出的第 i 个子段的左右端点,这个子段的子段和 bi=j=li∑riAj。
Lucy 认为一个合法的划分需要满足 li≤ri,且对于 ∀1≤j<k,有 lj+1=rj+1,并且 l1=1,rk=n。(假设划分出了 k 段)
Lucy 想要求一种划分方案使得 gcd(b1,b2,...,bk) 最大,你能告诉他该最大值吗?
输入格式
从 partition.in 文件中读取数据
输入的第一行包含一个整数 n。
接下来一行包含 n 个整数,第 i 个整数表示 Ai。
输出格式
将数据输出到 partition.out 文件中
输出共一行,包含一个整数,表示 gcd(b1,b2,...,bk) 的最大值。
5
1 2 3 1 2
3
6
7 7 7 7 7 7
21
其余样例见下发文件。
数据规模与约定
- 对于 30% 的数据,保证 n≤20。
- 对于另 30% 的数据,保证 n≤100,1≤Ai≤3。
- 对于另 20% 的数据,保证 Ai=1 且 2∣n。
- 对于 100% 的数据,保证 1≤n≤105,1≤Ai≤109。