CFCF2185B.Prefix Max

普及-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 nn 的整数数组 a1,a2,,ana_1, a_2, \ldots, a_n

一个数组的价值定义为其所有前缀的最大值之和。更正式地说,数组 aa 的价值为 i=1nmax(a1,,ai)\sum_{i=1}^{n} \operatorname{max}(a_1, \ldots, a_i)。例如,数组 [1,2,1][1, 2, 1] 的价值为 max(1)+max(1,2)+max(1,2,1)=1+2+2=5\operatorname{max}(1) + \operatorname{max}(1, 2) + \operatorname{max}(1, 2, 1) = 1 + 2 + 2 = 5

你可以选择两个下标 iijj,将元素 aia_iaja_j 交换;该操作最多只能执行一次。

请你求出在最多进行一次交换操作后,数组 aa 能够获得的最大价值。

输入格式

输入的第一行包含一个整数 tt1t1001 \leq t \leq 100),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn2n502 \le n \le 50),表示数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai1041 \le a_i \le 10^4),即数组 aa

输出格式

对于每个测试用例,输出在至多进行一次交换操作后,数组 aa 能获得的最大价值。

输入输出样例

  • 输入#1

    4
    5
    2 1 4 5 3
    2
    5 1
    3
    3 2 1
    2
    6 7

    输出#1

    25
    10
    9
    14

说明/提示

对于第一个测试用例,我们可以将 a1a_1a4a_4 交换,得到数组 [5,1,4,2,3][5, 1, 4, 2, 3],其价值为 max(5)+max(5,1)+max(5,1,4)+max(5,1,4,2)+max(5,1,4,2,3)=25\operatorname{max}(5) + \operatorname{max}(5, 1) + \operatorname{max}(5, 1, 4) + \operatorname{max}(5, 1, 4, 2) + \operatorname{max}(5, 1, 4, 2, 3) = 25

对于第二个测试用例,当前数组的价值为 max(5)+max(5,1)=10\operatorname{max}(5) + \operatorname{max}(5, 1) = 10。如果我们交换 a1a_1a2a_2aa 就变成了 [1,5][1, 5],其价值为 max(1)+max(1,5)=6\operatorname{max}(1) + \operatorname{max}(1, 5) = 6,因此最优方案是不进行任何交换操作。

首页