Pagini recente » Cod sursa (job #404789) | Istoria paginii runda/simuare_oni_2010 | Cod sursa (job #2006843) | Profil AnDrEwBoY | Cod sursa (job #1418076)
program ssmdinamica;
type vector=record
n:longint;
x:array[1..7000005] of integer;
end;
var v:vector; bestSum:longint; 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:longint; var start,stop:longint);
var i:longint; sum:longint; 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:longint; 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.