Description
求最大连续子序列的和
Input
第一行输入n(n<=500),第二行为n个以空格分开的整数;
Output
该序列中最大的连续子序列的和
Sample Input
6 1 2 -5 6 7 8
Sample Output
21
Source
#include <stdio.h>
int main()
{
int n, sum, ans, st, ed, x, y, a[10005],i;
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
ans = sum = x = y = st = ed = a[0];
for(i = 1; i < n; i++)
{
if(sum > 0) sum += a[i], ed = a[i];
else sum = a[i], st = ed = a[i];
if(sum > ans)
{
ans = sum;
x = st, y = ed;
}
}
if(ans < 0) ans = 0, x = a[0], y = a[n - 1];
printf("%d\n", ans);
return 0;
}