P1115 最大子段和(洛谷题面)
题目
题目描述:
给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。
输入格式:
第一行是一个整数,表示序列的长度 n。
第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 ai。
输出格式:
输出一行一个整数表示答案。
数据范围与说明:
样例 1 解释
选取 [3,5] 子段 {3,−1,2},其和为 4。
数据规模与约定
- 对于 40% 的数据,保证 n≤2×103。
- 对于 100% 的数据,保证 1≤n≤2×105,−104≤ai≤104。
2026/01/21:增加一组 hack 数据。
输入输出样例 #1
输入:
输出:
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include<bits/stdc++.h> using namespace std; int sum[200005],a[200005]; int main(){ int n,ans=-2147483647; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; sum[i]=sum[i-1]+a[i]; sum[i]=max(a[i],sum[i]); ans=max(ans,sum[i]); } cout<<ans; return 0; }
|