小明生成了一个长度为 n 的正整数数组 a1, a2, . . . , an,他可以选择连续的一 段数 al , al+1, ..., ar,如果其中所有数都相等即 al = al+1 = ... = ar,那么他可以获 得 (r − l + 1) × al 的分数。
在选择之前,为了让分数尽可能大,他决定先选择数组中的一段区间,对 其进行左右翻转。他想知道在对数组进行翻转之后他能获得的最大分数是多少?
提示:当翻转 al 到 ar 这段区间后,整个数组会变为 a1, a2, . . . , al−1, ar , ar−1, . . . , al+1, al , ar+1, . . . , an
输入共两行。
第一行为一个正整数 n。
第二行为 n 个由空格分开的正整数 a1, a2, . . . , an。
输出共 1 行,一个整数表示答案。
7 4 4 3 3 2 1 3
9
【样例说明】
翻转区间 [5, 7],数组变为 4, 4, 3, 3, 3, 1, 2,最大分数为选择三个 3。
【评测用例规模与约定】
对于 20% 的评测用例,n ≤ 500。
对于 100% 的评测用例,n ≤ 106,ai ≤ 106。