Cod sursa(job #416143)

Utilizator FllorynMitu Florin Danut Flloryn Data 12 martie 2010 11:30:24
Problema Deque Scor 25
Compilator fpc Status done
Runda Arhiva educationala Marime 0.65 kb
program pascal;
var f,g:text;  a,deque:array[0..5000000] of longint;
    i,front,back,k,n,s:longint;

  procedure citire;
  begin
  assign(f,'deque.in'); reset(f);
  assign(g,'deque.out'); rewrite(g);
  readln(f,n,k);
  for i:=1 to n do readln(f,a[i]);
  close(f);
  end;

  procedure alfa;
  begin
  front:=1; back:=0;  s:=0;
  for i:=1 to n do
      begin
      while (front<=back) and (a[i]<=a[deque[back]]) do back:=back-1;
      back:=back+1;
      deque[back]:=i;
      if deque[front]=i-k then front:=front+1;
      if (i>=k) then s:=s+a[deque[front]];
      end;
  write(g,s);
  close(g);
  end;

begin
citire;
alfa;
end.