Cod sursa(job #1403163)

Utilizator Stefan.Andras Stefan Stefan. Data 27 martie 2015 08:23:46
Problema Deque Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.77 kb
program deque;
const nmax = 5000001;
var f,g:text;
    bufin,bufout:array[1..1 shl 17] of char;
    i,n,k,dr,st:longint;
    a,c:array[1..nmax] of longint;
    s:int64;
begin
        assign(f,'deque.in'); reset(f);
        assign(g,'deque.out'); rewrite(g);
        settextbuf(f,bufin); settextbuf(g,bufout);
        readln(f,n,k);
        for i := 1 to n do
                read(f,a[i]);
        st := 1; dr := 0;
        for i := 1 to n do
                begin
                  while (st <= dr) and (a[i] <= a[c[dr]]) do dec(dr);
                  inc(dr);
                  c[dr]:=i;
                  if c[st] = i - k then inc(st);
                  if i >= k then s := s + a[c[st]];
                end;
        writeln(g,s);
        close(f); close(g);
end.