跳转至

短板翻盘

  • 参考时间限制:0.5 秒(参考环境:评测环境与性能;仅供预估)
  • 实际时间限制:标准程序在目标评测环境中处理最慢正式测试文件的基准时间的 2 倍,按 0.5 秒的倍数向上取整;若平台仅支持更粗的粒度,再向上取整到平台可设置值。
  • 内存限制:512 MB

背景故事

创意集市的一排展台各有两项评分,允许出现负分。评委决定选一段连续展台,把其中最低的第一项评分,乘以第二项评分的总和,作为这一段的最终得分。

评委觉得这样能让大家重视短板。摊主们听完规则,默默翻开了数学课本里“负负得正”的那一页。

你要选出得分最高的一段,至少包含一个展台。

(本故事由GPT-6 Astra重写)

形式化问题描述

给定两个长度均为 \(n\) 的整数序列 \(a_1,\ldots,a_n\) 和 \(b_1,\ldots,b_n\) ,分别表示各展台的第一项和第二项评分。求

\[ \max_{1\le l\le r\le n}\left(\min_{l\le i\le r}a_i\right)\left(\sum_{i=l}^{r}b_i\right) \]

也就是在所有非空连续区间中,最大化“区间内第一项评分的最小值 × 区间内第二项评分的总和”。

区间必须非空。两序列都可以包含正数、零和负数,答案也可能为负数。

输入格式

第一行一个整数 \(n\) .

第二行 \(n\) 个整数 \(a_1,\ldots,a_n\) .

第三行 \(n\) 个整数 \(b_1,\ldots,b_n\) .

输出格式

输出一个整数,表示最大值。

样例 1

输入

3
1 -1 1
1 2 3

输出

3

解释

选择区间 \([3,3]\) ,得到 \(1\times3=3\) .

样例 2

输入

3
-2 -1 -3
-2 -4 1

输出

15

解释

选择整个区间,得到 \((-3)\times(-5)=15\) .

样例 3

输入

1
2
-3

输出

-6

解释

唯一的非空区间得分为 \(-6\) ,不能改选空区间得到 \(0\) .

数据范围与保证

  • \(1\le n\le1\,000\,000\) .
  • \(-1\,000\,000\le a_i,b_i\le1\,000\,000\) .

数据分组

分值比例 额外条件
20% \(n\le300\)
20% \(n\le2\,000\)
20% \(n\le10\,000\)
40% 无额外条件