给出一段序列,选出其中连续且非空的一段使得这段和最大。
注:非空
是dp吧;
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int a[200010],f[200010];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
f[i]=a[i];
int p=f[1];
for(int i=2;i<=n;i++)
{
if(f[i-1]>0) f[i]+=f[i-1];
if(f[i]>p) p=f[i];
}
printf("%d",p);
return 0;
}