寻找循环移位后子数组的最大和
Kotlin
Hard
loops
任务 «寻找循环移位后子数组的最大和»
给定一个整数数组。允许执行恰好一次循环左移(第一个元素变为最后一个)或循环右移(最后一个元素变为第一个),移动次数任意,但不超过数组长度。之后,需要找到连续子数组的最大和(使用卡丹算法)。要求确定在执行一次循环移位后所能获得的最大可能和。如果数组为空,则输出0。
输入格式
第一行:一个整数 N(1 ≤ N ≤ 10^6)——数组的长度。第二行:N 个以空格分隔的整数(每个数的绝对值 ≤ 10^9)。
输出格式
一个整数——经过一次循环移位后子数组的最大和。
示例
示例 1
输入
4
-1 -2 -3 -4
输出
-1
main.kt