#P15059. [UOI 2023 II Stage] Product

    ID: 16990 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度提高 上传者: 标签>二分并查集2023ST 表单调栈UOI(乌克兰)

[UOI 2023 II Stage] Product

题目描述

给定一个长度为 nn 的数组 aa。一个子数组的成本定义为该子数组的长度与其两个最小数之和的乘积。

子数组 a[l..r]a[l..r] 是数组 aa 的一部分,仅包含位置从 ll 到 rr(含)的元素。

例如,设数组为 [5,3,1,5,3][5, 3, 1, 5, 3]。考虑子数组 a[2..4]a[2..4],它由元素 [3,1,5][3, 1, 5] 组成。其长度为 33,第一最小值为 11,第二最小值为 33。因此,其成本为 3⋅(1+3)=123 \cdot (1 + 3) = 12。考虑另一个子数组 a[1..2]a[1..2],由元素 [5,3][5, 3] 组成。其长度为 22,第一最小值为 33,第二最小值为 55。因此,其成本为 2⋅(3+5)=162 \cdot (3 + 5) = 16。

注意,如果最小数出现多次,则会被多次计算。例如,如果有一个子数组 [3,1,1][3, 1, 1],其长度为 33,第一最小值为 11,第二最小值为 11。因此,其成本为 3⋅(1+1)=63 \cdot (1 + 1) = 6。

你的任务是找出所有长度至少为两个元素的子数组中的最大成本。也就是说,你需要找出所有子数组 a[l..r]a[l..r](其中 (1≤l<r≤n)(1 \leq l < r \leq n))的最大成本。

输入格式

  • 第一行包含一个整数 nn(2≤n≤1062 \le n \le 10^6)。
  • 第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤1091 \le a_i \le 10^9)。

输出格式

输出一个整数——问题的答案。

5
5 3 1 5 3
20
7
1 1 3 5 10 77 5
174
3
1 2 3
10

提示

在第一个示例中,最大成本由子数组 a[1..5]a[1..5] 达到,其长度为 55,最小值为 11 和 33,乘积 (1+3)⋅5=20(1+3) \cdot 5 = 20。

在第二个示例中,最大成本由子数组 a[5..6]a[5..6] 达到,其长度为 22,最小值为 1010 和 7777,乘积 (10+77)⋅2=174(10+77) \cdot 2=174。

在第三个示例中,最大成本由子数组 a[2..3]a[2..3] 达到,其长度为 22,最小值为 22 和 33,乘积 (2+3)⋅2=10(2+3) \cdot 2=10。

评分细则

  • (66 分):2≤n≤8002 \le n \le 800
  • (77 分):2≤n≤5 0002 \le n \le 5\,000
  • (1010 分):2≤n≤20 0002 \le n \le 20\,000
  • (2424 分):所有测试用例按以下方式随机生成:首先确定一个数字 nn(非随机),然后每个 aia_i(1≤i≤n1 \le i \le n)被赋予 11 到 10910^9 之间的值,每个值等概率出现。2≤n≤1052 \le n \le 10^5。
  • (1717 分):2≤ai≤n2 \le a_i \le \sqrt{n}
  • (3636 分):无额外限制。

翻译由 DeepSeek V3 完成