Pagini recente » Cod sursa (job #2485591) | Cod sursa (job #803571) | Arhiva de probleme | Cod sursa (job #1283595) | Cod sursa (job #131924)
Cod sursa(job #131924)
var fi,fo:text;
i,n,k,max,j,pozi,pozf,su,sumadr:longint;
vl,sdr,sst,pf:array[0..50001]of longint;
begin
assign(fi,'secv2.in'); reset(fi);
assign(fo,'secv2.out'); rewrite(fo);
read(fi,n,k);
sdr[0]:=0; sst[0]:=0;
for i:=1 to n do
begin
read(fi,vl[i]);
sst[i]:=sst[i-1]+vl[i];
end;
if n=k then write(fo,1,' ',n,' ',sst[n])
else
begin
max:=0;
for i:=n downto 1 do
begin
if sdr[i+1]>0 then
begin
sdr[i]:=sdr[i+1]+vl[i];
pf[i]:=pf[i+1];
end
else
begin
sdr[i]:=vl[i];
pf[i]:=i;
end;
if sdr[i]>max then max:=sdr[i];
end;
for i:=1 to n-k do
begin
sumadr:=sst[i+k]-sst[i-1]+sdr[i+k+1];
if sumadr>max then
begin
pozi:=i;
pozf:=pf[i+k+1];
max:=sumadr;
end
else
if sumadr=max then
if pf[i+k+1]-i>pozf-pozi then
begin
pozi:=i;
pozf:=pf[i+k+1];
end;
end;
write(fo,pozi,' ',pozf,' ',max);
end;
close(fi);
close(fo);
end.