Cod sursa(job #1365918)

Utilizator casianos1996Marc Casian Nicolae casianos1996 Data 28 februarie 2015 16:44:54
Problema Deque Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.64 kb
program deque;
var     s:int64;
        bufin,bufout:array[1..5000000] of byte;
        min,i,j,st,dr,n,k:longint;
        a,c:array[1..5000000] of longint;
begin
  assign(input,'deque.in'); reset(input);
  assign(output,'deque.out'); rewrite(output);
  settextbuf(input,bufin);
  settextbuf(output,bufout);
  readln(n,k);
  for i:=1 to n do
    readln(a[i]);
  st:=1; dr:=0;
  for i:=1 to n do
    begin
      while (st<=dr) and (a[i]<=a[c[dr]]) do
        dr:=dr-1;
      dr:=dr+1;
      c[dr]:=i;
      if c[st]=i-k then st:=st+1;
      if i>=k then
        s:=s+a[c[st]];
    end;
  writeln(s);
  close(input); close(output);
end.