最大子数组和(含重排操作)
Swift
Hard
arrays
任务 «最大子数组和(含重排操作)»
给定一个整数数组。允许执行最多一次操作:选择任意一个子数组,并任意重新排列其中的元素。求执行此操作后(或不执行操作)任意连续子数组的最大可能和。数组可能包含负数。限制条件:数组长度不超过 10^5,元素范围从 -10^9 到 10^9。
输入格式
第一行:整数 n (1 ≤ n ≤ 10^5) — 数组的长度。第二行:n 个以空格分隔的整数 — 数组的元素。
输出格式
一个整数——经过最多一次重排后的子数组最大和。
示例
示例 1
输入
5
1 -2 3 4 -5
输出
8
示例 2
输入
4
-1 -2 -3 -4
输出
-1
示例 3
输入
/tmp/testdir
*.txt
输出
/tmp/testdir/subdir/file1.txt a1b2c3d4e5f6...
/tmp/testdir/file2.txt 1234567890abcdef...
示例 4
输入
Hello World
输出
3
示例 5
输入
3
5 -1 3
输出
8
main.swift