P13085

最大子段和(分治)

难度 3 级 小学 算法入门 分治
讨论 统计 32通过 47提交 68.1%通过率 旧版界面
时间限制 1 秒 内存限制 64 MB

题目描述

给定一个长度为 n 的整数序列 a_1, a_2, \dots, a_n ,请找出一个连续的非空子段,使得该子段内所有整数之和最大。输出这个最大和。

本题要求使用分治法求解。

输入

  • 第一行包含一个整数 n ( 1 \le n \le 10^6 ),表示序列的长度。
  • 第二行包含 n 个整数 a_1, a_2, \dots, a_n ,( |a_i| \le 10^9 ),表示序列中的元素。

输出

输出一个整数,表示最大子段和。

样例

样例 1
输入
10
3 1 -6 1 7 5 -2 5 -100 10
输出
16

提示

样例说明

最大子段为 1 7 5 -2 5,其和为 1+7+5-2+5 = 16 。

数据范围与约定

  • 对于 30% 的数据, n \le 100 。
  • 对于 100% 的数据, n \le 10^6 。
  • 序列元素绝对值不超过 10^9 。
Tab 缩进 · 提交后可在下方查看评测状态
请先登录后再提交