Cod sursa(job #294159)
Utilizator | Barna Bogdan BOgdu | Data | 2 aprilie 2009 12:49:23 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 1.09 kb |
{secventa dintr`un sir cu suma maxima}
var a:array[1..6000000] of longint;
n,suma,smax,st,poz,lg,sf,i:longint;
f,g:text;
procedure citire;
begin
assign(f,'ssm.in');
reset(f);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
close(f);
end;
BEGIN
citire;
assign(g,'ssm.out');
rewrite(g);
suma:=a[1];
smax:=suma;
st:=1;
lg:=1;
poz:=1;
for i:=2 to n do
BEGIN
if suma<0 then
begin
suma:=a[i];
st:=i;
end
else suma:=suma+a[i];
if smax<suma then
begin
smax:=suma;
poz:=st;
lg:=i-st+1;
sf:=poz+lg-1;
end;
END;
writeln(g,smax,' ',poz,' ',sf);
close(g);
end.