Cod sursa(job #299879)

Utilizator andreirulzzzUPB-Hulea-Ionescu-Roman andreirulzzz Data 7 aprilie 2009 02:16:10
Problema Secventa 2 Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.49 kb
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. }