Cod sursa(job #65821)

Utilizator ScrazyRobert Szasz Scrazy Data 13 iunie 2007 11:12:42
Problema Secventa 2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.94 kb
const MaxN=50001;
var
  fin,fout:text;
  n,i,k,j,start,finish:word;
  a,v:array[1..MaxN] of integer;
  ossz:longint;
  max:longint;
  maxi,maxj,fi,ai:word;


begin

  assign(fin,'secv2.in');reset(fin);
  assign(fout,'secv2.out');rewrite(fout);

  readln(fin,n,k);

  for i:=1 to n do
    read(fin,a[i]);

  close(fin);


  max:=0;
  for i:=1 to k do begin
    max:=max+a[i];
  end;
  maxi:=1;
  maxj:=k;


  finish:=0;
  start:=1;


  for i:=1 to n do begin

    finish:=finish+1;
    v[finish]:=a[i];
    if v[finish]<0 then begin
      if ossz<abs(v[finish]) then begin start:=finish+1;ossz:=0; end
                        else ossz:=ossz+v[finish];
    end
    else if v[finish]>0 then ossz:=ossz+v[finish];

    if (ossz > max)and(finish-start>=k-1) then begin
       max:=ossz;
       maxi:=start;
       maxj:=finish;
    end;



  end;


  writeln(fout,maxi,' ',maxj,' ',max);
  close(fout);
end.