Cod sursa(job #265993)

Utilizator belgun_adrianBelgun Dimitri Adrian belgun_adrian Data 24 februarie 2009 20:14:51
Problema Secventa 2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.01 kb
// Arhiva de probleme - Secventa2

var
        n, k, i, j, smax, pozi, pozf    : longint;
        v, s, m, p                      : array [0..50000] of longint;
        f                               : text;

begin
assign  (f,'secv2.in');
reset   (f);
readln  (f, n, k);
for i := 1 to n do
    begin
    read(f, v[i]);

    if (i<>1) then
        s[i] := s[i-1] + v[i]
    else
        s[i] := v[i];

    if (i<>1) and (s[i]>=m[i-1])  then
        begin
        m[i] := m[i-1];
        p[i] := p[i-1];
        end
    else
        begin
        m[i] := s[i];
        p[i] := i;
        end;

    if (i>k) and (smax<s[i]-m[i-k]) then
        begin
        smax := s[i]-m[i-k];
        pozi := p[i-k]+1;
        pozf := i;
        end;

    if (i=k) or (smax < s[i]) then
        begin
        smax := s[i];
        pozi := 1;
        pozf := i;
        end;



    end;
close   (f);



assign  (f,'secv2.out');
rewrite (f);
writeln (f, pozi, ' ', pozf, ' ', smax);
close   (f);
end.