Cod sursa(job #238431)

Utilizator MihaiBunBunget Mihai MihaiBun Data 2 ianuarie 2009 09:27:18
Problema Deque Scor 60
Compilator fpc Status done
Runda Arhiva educationala Marime 0.49 kb
program deq;
var f:text;
    a,c:array[0..500010] of longint;
    s:int64;
    i,n,k,li,ls,j:longint;
begin
  assign(f,'deque.in');
  reset(f);
  readln(f,n,k);
  for i:=1 to n do read(f,a[i]);
  close(f);
  s:=0;
  li:=1;
  ls:=0;
  for i:=1 to n do
  begin
    while (li<=ls) and (a[i]<=a[c[ls]]) do ls:=ls-1;
    ls:=ls+1;
    c[ls]:=i;
    if c[li]=i-k then li:=li+1;
    if i>=k then s:=s+a[c[li]]
  end;
  assign(f,'deque.out');
  rewrite(f);
  write(f,s);
  close(f)
end.