Pagini recente » Cod sursa (job #2408654) | Cod sursa (job #2259867) | Cod sursa (job #105309) | Cod sursa (job #1046833) | Cod sursa (job #692861)
Cod sursa(job #692861)
program subsir_maximal_dinamic;{de pe infoarena 40puncte}
type sume=array[0..6000001] of int64;
var
i,si,sj,min,pozi,j,nr,pozj,pozfi,pozfj:longint;
summax:int64;
n:longint;
f,g : text;
s:sume;
procedure dinamica;
var i:integer;
begin
assign(f,'ssm.in');
reset(f);
assign(g,'ssm.out');
rewrite(g);
readln(f,n);
read(f,nr);
s[1]:=nr; pozj:=0;
summax:=-maxlongint;
if nr<0 then
begin
min:=nr;
pozj:=1;
end
else
begin
min:=0;
end;
for i:=2 to n do
begin
read(f,nr);
s[i]:=s[i-1] +nr;
if summax<s[i]-min then
begin
summax:=s[i]-min;
pozfj:=pozj+1;
pozfi:=i;
end;
{ else
if summax=s[i]-min then
if}
if min>s[i] then
begin
min:=s[i];
pozj:=i;
end;
end;
write(g,summax,' ',pozfj,' ',pozfi);
close(f);
close(g);
end;
begin
dinamica;
end.