容易推出 G阶数组 就是数组的周期为 G,即 arr[i]=arr[i+k]
所以将一个数组变为 G阶数组 的步骤是固定的,即将每个周期中的第 i 个数都变成这些数中最大的那个,然后再用剩下的操作次数尽量的让最大值变大,最后取max即可。
Python代码
现在小红拿到了一个数组arr,每次操作可以将数组arr中的一个数+1,求用 至多d 次操作将这个数组变为一个 G阶数组 后的最大值为多少,如果不能变成合法的G阶数组 则输出 −1
G阶数组满足:一个数组中的每个长度为G的连续子数组的和都相等。
第一行n,G,d,分别表示数组arr的长度,G的大小以及操作次数
第二行n个数,表示数组元素,以空格隔开
1≤k,n,d≤100000 , G≤n
−109≤arri≤109
输入
5 3 6
3 5 7 9 5
输出
9