在数学研究和算法优化的领域中,常常会遇到对数列进行特定划分以获取最优解的问题。 假设有一个科研团队正在研究一种特殊的数列分析模型。他们得到了一个长度为 的序列 ,这个序列中的每个元素都代表着某种特定的数据值。现在,他们想要将这个序列分成 个部分,并且有一系列严格的划分要求。 要求如下: 要求一:每个部分必须包含至少一个元素,不能为空。这是因为在这个研究模型里,空的部分没有实际意义,无法进行有效的数据评估。 要求二:各部分之间不存在重叠区域。这是为了确保数据划分的准确性,避免数据的重复使用或者混淆,每个数据元素在最终的划分结果中只能属于一个部分。 要求三:每个部分都由连续下标的元素构成。这一要求是基于他们现有的分析算法框架,该框架只能处理连续下标的数据块,以便于后续统一的计算和分析操作。 对于每个部分,其分数被定义为这个部分中所有元素的最大公约数(gcd)。这个定义是基于他们对数据内在关联性的一种量化方式,最大公约数能够在一定程度上反映这个部分数据元素之间的某种紧密联系。而整个序列的得分 是所有部分分数相加的结果。这个总得分在整个研究模型中代表着这个序列按照特定划分方式后的整体关联度或者说价值度。 现在,请找出这个序列能够得到的最大得分 。
输入描述:
第一行包含两个整数,分别是 , 表示 序列的大小, 表示这个序列应该要被分成的部分数。第二行 个整数 ,


输出描述:
输出一个值 表示这个序列划分之后的最大分数。
示例1

输入

4 4
1 2 3 4

输出

10
示例2

输入

5 3
7 4 5 6 8

输出

16
加载中...