问题1924--小 Z 的马里奥童年

1924: 小 Z 的马里奥童年

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

小 Z 从计算机专业毕业了,决定去找寻自己的童年。小时候,他经常玩一款叫做马里奥的游戏,现在他准备自己开发一个非常简单的马里奥。

因为小时候玩这个游戏他操作的马里奥只有一个,他觉得不过瘾,现在他决定创造非常多的马里奥用来顶箱子。

为了简化问题,现在在一个街道上(可以看成数轴)每隔一个单位水平站着 n
个马里奥,编号分别为 1,2,...,n,每个马里奥都有一个能力值,分别为 a1,a2,...,an,即第 i 个马里奥有一个 ai 的能力值。在每一个马里奥的上方有一排共 n 个箱子,编号也是 1,2,...,n,每个箱子有一个隐藏的蘑菇值,分别为 b1,b2,...,bn

游戏一开始,每个马里奥都会往上跳顶掉自己头顶的那个箱子,从而获得分数,分数为马里奥的能力值与箱子隐藏蘑菇值的乘积。具体地,第 i 个马里奥顶掉自己头顶的第 i 个箱子会获得ai✖bi的分数。

这样,游戏就失去了趣味性,最终获得的分数总和是固定的,就是对应位置的马里奥能力值与箱子蘑菇值的乘积之和。为了增加可玩性,现在允许玩家操作一部分编号连续的箱子或者马里奥(要么操作编号连续的箱子,要么操作编号连续的马里奥)。

- 操作的意思是将编号连续的这段区间中的箱子翻转过来,或者将编号连续的这段区间中的马里奥从左到右换一个顺序。
- 例如选取编号为 3,4,5的箱子,翻转后箱子编号为 5,4,3;或者选取编号为 2,3,4 的马里奥,翻转后马里奥顺序为 4,3,2。

现在小 Z 想知道,在只允许执行上述操作一次的情况下,他怎么操作可以使得最终获得的分数之和最高?这样,他就可以去炫耀了。

【注意】

允许翻转连续区间长度为 1 的箱子或马里奥,相当于一个都不翻转,这种情况也是被允许的。

输入

第一行一个整数 $n$,表示箱子和马里奥数量。

接下来一行 n 个整数,分别为 a1,a2,...,an,分别表示每个马里奥的能力值。

接下来一行 n 个整数,分别为 b1,b2,...,bn,分别表示每个箱子的蘑菇值。

输出

输出一行一个整数,表示最大的分数之和。

样例输入 Copy

6
1 8 7 6 3 6
5 9 6 8 8 6

样例输出 Copy

235

提示

样例2:
输入:
5
1 2 3 4 5
2 3 4 5 6
输出:
70
【样例 1 解释说明】
翻转编号为 $3,4,5$ 的箱子,也就是箱子蘑菇值为 $6,8,8$ 的这三个连续箱子,得到最终分数之和为 1*5+8*9+7*8+6*8+3*6+6*6=235,并且可以证明是最优解。
【样例 2 解释说明】
翻转任意区间长度为 $1$ 的 $1$ 个箱子,相当于没有翻转,得到的最终分数之和为 1*2+2*3+3*4+4*5+5*6=70,并且可以证明是最优解。
【数据范围】
本题共 $20$ 个测试点,对于全部数据 1<=n<=5000,1<=ai,bi<=107
具体数据点分布如下:

来源/分类