hdu1231 最大连续子序列

时间:2024-01-19 08:18:02
#include<stdio.h>
#include<string.h>
#define maxn 10010
int a[maxn],dp[maxn];
int main()
{
int n,i,j,max,flag,l,r,fl;
while(scanf("%d",&n)!=EOF)
{
if(n==)
break;
flag=;
memset(dp,,sizeof(dp)); for(i=;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]>=)
flag=;
}
max=-;
l=r=fl=;
for(i=;i<=n;i++)
{
if(dp[i-]+a[i]>=a[i])
{
dp[i]=dp[i-]+a[i];
}
else
{
fl=i;
dp[i]=a[i];
}
if(dp[i]>max)
{
l=fl;
r=i;
max=dp[i];
}
} if(!flag)
printf("0 %d %d\n",a[],a[n]);
else
printf("%d %d %d\n",max,a[l],a[r]);
}
}