Description
求最大连续子序列的和
Input
第一行输入n(n<=500),第二行为n个以空格分开的整数(-1000到1000之间);
Output
该序列中最大的连续子序列的和
Sample Input
6
1 2 -5 6 7 8
Sample Output
21
每次读入一个数判断它是否为负数,如果不是就赋值为a[i]:=a[i]+a[i-1]
在判断max是否大于a[i],如果是则更新值
代码如下:
var max,i,n:longint;
a:array[0..500]of longint;
begin
max:=0;
readln(n);
for i:=1 to n do
begin
read(a[i]);
if a[i-1]>0 then a[i]:=a[i]+a[i-1];
if a[i]>max then
max:=a[i];
end;
write(max);
end.