Cod sursa(job #345697)

Utilizator 05_YohnE1 La5c01 05_Yohn Data 4 septembrie 2009 11:53:47
Problema Deque Scor 60
Compilator fpc Status done
Runda Arhiva educationala Marime 0.51 kb
{$S-}
var a,deque:array[1..5000000]of LONGINT;
    suma:INT64;
    i,front,back,k,n:LONGINT;
begin
assign(input,'deque.in');
reset(input);

assign(output,'deque.out');
rewrite(output);

read(n,k);
for i:=1 to n do read(a[i]);

front:=1; back:=0;
suma:=0;

for i:=1 to n do begin
    while (front<=back)and(a[i]<=a[deque[back]])do dec(back);
    inc(back);
    deque[back]:=i;
    if deque[front]=i-k then inc(front);
    if i>=k then inc(suma,a[deque[front]]);
end;
write(suma);
close(output);
end.