Cod sursa(job #359117)
program subsir_maximal;
var
i,si,sj,pozi,nr,pozj,pozfi,pozfj,summax:longint;
n:longint;
f,g : text;
procedure rezolvare;
begin
assign(f,'ssm.in');
reset(f);
assign(g,'ssm.out');
rewrite(g);
readln(f,n);
si:=maxlongint;
sj:=maxlongint;
read(f,nr);
sj:=nr; si:=nr;
{si---> suma numerelor din fisier pana la cel cu numarul de ordine i }
{sj---> suma minima care s-a obtinut pana la momentul actual}
pozj:=1;{numarul de ordine al numarului citit pentru care s-a obtinut suma minima sj}
summax:=nr;{suma maxima ce se poate obtine}
for i:=2 to n do
begin
read(f,nr);
si:=si+nr;
if si-sj >summax then{inseamna ca am obtinut o noua secventa}
begin
summax:=si-sj;
pozfi:=i; {pozitia finala a lui i }
pozfj:=pozj+1; {pozitia finala a lui j in cadrul secventei maxime}
end;
if si<sj then {am obtinut o suma mai mica}
begin
pozj:=i;
sj:=si;
end;
end;
close(f);
write(g,summax,' ',pozfj,' ',pozfi);
close(g);
end;
begin
rezolvare;
end.