最大连续子序列

#include <stdio.h>
#include
<string.h>
#include
<stdlib.h>

int dp[11100];


int main( )
{
int T, i, j, max = 0, sum;
int a, b, c, d;

while ( scanf("%d",&T) , T )
{
for (i = 0; i < T; i++)
scanf(
"%d",&dp[i]);

a
= b = c = d = max = sum = dp[0];

for (i = 1; i < T; i++) {
if (sum < 0)
sum
= dp[i], a = dp[i], b = dp[i];
else
sum
+= dp[i],b = dp[i];
if (sum > max) {
max
= sum;
c
= a;
d
= b;
}
}
if (max < 0 )
printf(
"0 %d %d\n",dp[0],dp[T-1]);
else
printf(
"%d %d %d\n",max, c, d);

}
return 0;
}


posted on 2011-07-31 19:37  more think, more gains  阅读(166)  评论(0编辑  收藏  举报

导航