#AT1118. 青蛙跳跃

青蛙跳跃

题目描述

有一个无限大的池塘,我们将其视为一条数轴。

在这个池塘上有NN朵睡莲,它们浮在坐标012N20,1,2,…,N-2N1N -1上。 在坐标ii的睡莲上写着一个整数sis_i

你站在坐标0上。你将玩一个游戏,规则如下:

1、选择正整数AABB。你的初始分数为00

2、设xx为你当前所在坐标,令y=x+Ay =x+ A。坐标xx上的睡莲消失,你移动到坐标yy上。

  • 如果y=N1y = N -1,游戏结束。

  • 如果yN1y \neq N - 1旦坐标yy上浮着一个睡莲,你的分数增加sys_y

  • 如果yN1y \neq N - 1旦坐标yy上没有浮着睡莲,你会淹死。你的分数减去1010010^{100}分,游戏结束。

3、设xx为你当前所在坐标,令y=XBy=X-B。坐标xx上的睡莲消失,你移动到坐标yy上。

  • 如果y=N1y = N - 1,游戏结束。

  • 如果yN1y \neq N - 1旦坐标yy上浮着一个睡莲,你的分数增加sys_y

  • 如果yN1y \neq N - 1旦坐标yy上没有浮着睡莲,你会淹死。你的分数减去1010010^{100}分,游戏结束

4、回到第2步

你想以尽可能高的分数结束游戏。最佳选择AABB能获得多少分?

输入

第一行一个整数NN

接下来一共NN个整数,分别表示睡莲上的sis_i的值。

输出

输出AABB的最佳分数

5
0 2 5 1 0
3

样例解释

如果选择A = 3和B =2,游戏的进行如下:

移动到坐标0+3-3。你的分数增加S3=1S_3= 1

移动到坐标3-2=1。你的分数增加s1=2s_1= 2

移动到坐标1 +3 -4。游戏以分数3结束。

不存在以4或更高分数结束游戏的方法,因此答案是3。注意在淹死之前你无法降落到坐标2上的睡莲。

6
0 10 -7 -4 -13 0
0

样例解释

这里的最佳策略是通过选择AA=5(BB的值不重要)立即落在最后一个睡莲上。

11
0 -4 0 -99 31 14 -15 -39 43 18 0
59

提示

3N105 3 \leq N \leq 10^5

109si109-10^9 \leq s_i \leq 10^9

s0=sN1=0s_0=s_{N-1}=0