CFCF1519D.Maximum Sum of Products

普及/提高-

官方

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定两个长度为 nn 的整数数组 aabb

你可以至多反转一次数组 aa 的一个子数组(连续子段)。

你的任务是选择反转哪个子数组,使得 i=1naibi\sum\limits_{i=1}^n a_i \cdot b_i 的值最大。

输入格式

第一行包含一个整数 nn1n50001 \le n \le 5000)。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1071 \le a_i \le 10^7)。

第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n1bi1071 \le b_i \le 10^7)。

输出格式

输出一个整数,表示在至多反转一次 aa 的一个连续子数组后,能够得到的最大和。

输入输出样例

  • 输入#1

    5
    2 3 2 1 3
    1 3 2 4 2

    输出#1

    29
  • 输入#2

    2
    13 37
    2 4

    输出#2

    174
  • 输入#3

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

    输出#3

    235

说明/提示

在第一个样例中,你可以反转子数组 [4,5][4, 5]。此时 a=[2,3,2,3,1]a = [2, 3, 2, 3, 1],计算得 21+33+22+34+12=292 \cdot 1 + 3 \cdot 3 + 2 \cdot 2 + 3 \cdot 4 + 1 \cdot 2 = 29

在第二个样例中,你无需进行反转操作。132+374=17413 \cdot 2 + 37 \cdot 4 = 174

在第三个样例中,你可以反转子数组 [3,5][3, 5]。此时 a=[1,8,3,6,7,6]a = [1, 8, 3, 6, 7, 6],计算得 15+89+36+68+78+66=2351 \cdot 5 + 8 \cdot 9 + 3 \cdot 6 + 6 \cdot 8 + 7 \cdot 8 + 6 \cdot 6 = 235

首页