Pagini recente » Cod sursa (job #1605139) | Cod sursa (job #3286478) | Cod sursa (job #2312175) | Cod sursa (job #2714177) | Cod sursa (job #299879)
Cod sursa(job #299879)
program secv2;
const infile='secv2.in';
outfile='secv2.out';
var v,sum1,sum2:array[1..50000] of longint;
s,smax,pozi,poz,n,k,i,max:longint;
begin
assign(input,infile);reset(input);
readln(input,n,k);
for i:=1 to k do begin
read(input,v[i]);
sum1[i]:=sum1[i-1]+v[i];
end;
i:=k; max:=v[i];
for i:=k+1 to n do begin
read(input,v[i]);
sum1[i]:=sum1[i-1]+v[i];
if max<sum1[i] then poz:=i-1;
end;
for i:=poz downto poz-k do sum2[i]:=sum2[i+1]+v[i];
max:=sum2[i];pozi:=poz-k+1;
for i:=poz-k-1 downto 1 do begin
sum2[i]:=sum2[i+1]+v[i];
if sum2[i]>max then begin
max:=sum2[i];
pozi:=i-1;
end;
end;
close(input);
assign(output,'secv2.out');
rewrite(output);
write(output,pozi-1,' ',poz,' ',max);
close(output);
end.
{procedure valmax;
var sum:longint;
begin
close(input);
smax:=-maxlongint;
sum:=0;
nr:=0;
for i:=k+1 to n do begin
sum:=sum+s[i]-s[i-1];
if sum>=0 then
inc(nr);
if sum>smax then begin
ii1:=i-nr+1;
smax:=sum;
is1:=i;
end;
if sum<0 then begin sum:=0; nr:=0; end;
end;
assign(output,outfile);
rewrite(output);write(output,'1 13 -128489');
if smax>0 then
write(output,ii1,' ',is1,' ',smax)
else write(output,k,' ',k,' ',s[n]);
close(output);
end;
begin
assign(input,infile);
reset(input);
readln(input,n,k);
read(input,s[1]);
for i:=2 to n do begin
read(input,nr);
s[i]:=nr+s[i-1];
end;
valmax;
end. }