Pagini recente » Cod sursa (job #3286700) | Cod sursa (job #3222384) | Cod sursa (job #2776232) | Istoria paginii utilizator/uaic_cojocariu_gotca_palanici | Cod sursa (job #531444)
Cod sursa(job #531444)
program subsir_maximal;
var
i,sj,pozi,nr,pozj,pozfi,pozfj,summax:longint;
si:int64;
n:longint;
f,g : text;
procedure rezolvare;
begin
assign(f,'ssm.in');
reset(f);
assign(g,'ssm.out');
rewrite(g);
read(f,n);
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
pozfi:=i; {pozitia finala a lui i }
if pozj<>1 then
begin
pozfj:=pozj+1;{pozitia finala a lui j in cadrul secventei maxime}
summax:=si-sj;
end
else
begin
pozfj:=pozj;{pozitia finala a lui j in cadrul secventei maxime}
summax:=si;
end;
end;
if si<sj then {am obtinut o suma mai mica}
begin
pozj:=i;
sj:=si;
end;
end;
close(f);
writeln(g,summax,' ',pozfj,' ',pozfi);
close(g);
end;
begin
rezolvare;
end.