Pagini recente » Cod sursa (job #951030) | Cod sursa (job #2235399) | Cod sursa (job #1767240) | Cod sursa (job #37975) | Cod sursa (job #1418074)
program ssmdinamica;
type vector=record
n:longint;
x:array[1..6000000] of integer;
end;
var v:vector; bestSum:int64; start,stop:longint;
procedure citeste(var v:vector);
var i:longint;
begin
assign(input,'ssm.in'); reset(input);
readln(v.n);
for i:=1 to v.n do
read(v.x[i]);
close(input);
end;
procedure ssm_dinamic(v:vector; var bestSum:int64; var start,stop:longint);
var i:longint; sum:int64; aux:longint;
begin
bestSum:=0; start:=1; stop:=1; sum:=0; aux:=0;
for i:=1 to v.n do
begin
if sum<0 then
begin
sum:=v.x[i]; aux:=i;
end
else
sum:=sum+v.x[i];
if bestSum<sum then
begin
bestSum:=sum;
start:=aux; stop:=i;
end;
end;
end;
procedure tipareste(bestSum:int64; start,stop:longint);
begin
assign(output,'ssm.out'); rewrite(output);
write(bestSum,' ', start,' ', stop);
close(output);
end;
begin
citeste(v);
ssm_dinamic(v,bestSum,start,stop);
tipareste(bestSum, start, stop);
end.