P12159 [蓝桥杯 2025 省 Java B] 数组翻转

题目描述

小明生成了一个长度为 $n$ 的正整数数组 $a_1, a_2, \dots , a_n$,他可以选择连续的一段数 $a_l, a_{l+1}, \dots, a_r$,如果其中所有数都相等即 $a_l = a_{l+1} = \dots = a_r$,那么他可以获得 $(r - l + 1) \times a_l$ 的分数。 在选择之前,为了让分数尽可能大,他决定先选择数组中的一段区间,对其进行左右翻转。他想知道在对数组进行翻转之后他能获得的最大分数是多少? 提示:当翻转 $a_l$ 到 $a_r$ 这段区间后,整个数组会变为: $$a_1, a_2, \dots , a_{l-1}, a_r, a_{r-1}, \dots , a_{l+1}, a_l, a_{r+1}, \dots , a_n$$

输入格式

输入共两行。 - 第一行为一个正整数 $n$。 - 第二行为 $n$ 个由空格分开的正整数 $a_1, a_2, \dots , a_n$。

输出格式

输出共 $1$ 行,一个整数表示答案。

说明/提示

### 样例说明 翻转区间 $[5, 7]$,数组变为 $4, 4, 3, 3, 3, 1, 2$,最大分数为选择三个 $3$。 ### 评测用例规模与约定 - 对于 $20\%$ 的评测用例,$n \leq 500$。 - 对于 $100\%$ 的评测用例,$1\leq n \leq 10^6$,$1\leq a_i \leq 10^6$。