Cod sursa(job #744709)

Utilizator RadioactivMihai Preguza Radioactiv Data 9 mai 2012 14:46:00
Problema Deque Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.64 kb
var a,deque:array[1..5000000] of longint;
    suma:int64;
    cap,coada,n,k,i:longint;
    b1,b2:array[1..1shl 17] of char;
BEGIN
  assign(input,'deque.in');
  settextbuf(input,b1);
  reset(input);
  read(n,k);
  for i:=1 to n do
    read(a[i]);
  close(input);
  cap:=1;
  coada:=0;
  suma:=0;
  for i:=1 to n do
    begin
      while (cap<=coada) and (a[i]<=a[deque[coada]])
        do dec(coada);
      inc(coada);
      deque[coada]:=i;
      if deque[cap]=i-k then inc(cap);
      if i>=k then suma:=suma+a[deque[cap]];
    end;
  assign(output,'deque.out');
  rewrite(output);
  writeln(suma);
  close(output);
END.

END.