#1 linshutan@2008-11-03 22:14:00
8151
回复
删除
program p208;
var a:array[1..1000000]of longint;
n,k,i,j:longint;
ans,temp,sum,max,min:int64;
t:boolean;
begin
readln(n);
t:=false;
max:=-maxlongint;
for i:=1 to n do
begin
read(a[i]);
if a[i]>0 then t:=true;
if a[i]>max then max:=a[i];
end;
if t=false then begin writeln(max); halt; end;
sum:=0;
max:=0;
for i:=1 to n do
begin
inc(temp,a[i]);
inc(sum,a[i]);
if sum<0 then sum:=0;
if sum>max then max:=sum;
end;
sum:=0;
min:=0;
for i:=1 to n do
begin
inc(sum,-a[i]);
if sum<0 then sum:=0;
if sum>min then min:=sum;
end;
if temp+min>max then max:=temp+min;
writeln(max);
end.