最大连续子序列
#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) 编辑 收藏 举报