#CF2124G. 最大化总和
最大化总和
G. 最大化总和
时间限制:4 秒
内存限制:512 兆字节
本题与问题 B 不同。本题中,你需要对每个 从 到 ,输出在所有代价至少为 的操作中,前缀最小值之和的最大值。
给定一个长度为 的数组 ,元素满足 。你可以执行至多一次如下操作:
- 选择两个下标 和 满足 。令 ,然后令 。
一次操作的代价定义为 。不执行操作的代价为 。
对于每个整数 从 到 包含,输出在所有代价至少为 的操作中,
$$\min(a_1) + \min(a_1, a_2) + \dots + \min(a_1, a_2, \dots, a_n) $$的最大值。
输入
每个测试包含多个测试用例。第一行包含测试用例数 ()。
每个测试用例的第一行包含一个整数 ()—— 数组 的长度。
第二行包含 个空格分隔的整数 ()—— 数组 。
保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一行 个整数:第 个整数表示在所有代价至少为 的操作中,前缀最小值之和的最大值。
样例
输入
6
2
1 2
4
2 3 1 4
2
1 0
5
5 5 0 5 5
5
4 1 3 3 1
10
7 4 7 0 8 7 5 0 2 1
输出
3 3
10 10 10 10
1 1
20 20 20 15 15
11 11 11 10 8
27 27 27 27 23 23 20 19 17 16
说明
分析第五个测试用例:
- :最优操作是 ,代价为 ,数组变为 ,得分为 。
- :最优操作是 ,代价为 ,数组变为 ,得分为 。
- :唯一操作是 ,代价为 ,数组变为 ,得分为 。