第1个回答 2019-05-24
const
n=10;
var
i,s,max,first,maxfirst,maxl:integer;
a:array[1..n]of
integer;
begin
for
i:=1
to
n
do
read(a[i]);
max:=a[1];s:=a[1];first:=1;maxfirst:=first;maxl:=0;
for
i:=2
to
n
do
begin
if
s<0
then
begin
s:=0;
first:=i;
end;
s:=s+a[i];
if
s>max
then
begin
max:=s;maxfirst:=first;maxl:=i-first;end;
end;
writeln('max=',max);
for
i:=maxfirst
to
maxfirst+maxl
do
write(a[i],'
');
writeln;
readln;
end.
第2个回答 2010-06-30
var i,n,total,j,temp,ans:longint;
a,b:array[1..100000] of longint;
begin
read(n);
for i:=1 to n do
begin
read(a[i]);
b[i]:=a[i];
total:=total+a[i];
end;
for i:=2 to n do
begin
if a[i]<a[i-1]+a[i]
then a[i]:=a[i-1]+a[i];
if a[i]>ans
then ans:=a[i];
end;
for i:=2 to n do
begin
if b[i]>b[i-1]+b[i]
then b[i]:=b[i-1]+b[i];
if temp>b[i]
then temp:=b[i];
end;
if ans>total-temp
then writeln(ans)
else writeln(total-temp);
end.本回答被提问者采纳