Cod sursa(job #1101817)
| Utilizator | Data | 9 februarie 2014 10:31:39 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
program dequee;
var a,deque:array[1..1000000] of longint;
n,k,i,front, back,sum:longint;
begin
assign(input,'deque.in'); reset(input);
assign(output,'deque.out'); rewrite(output);
readln(n,k);
for i:=1 to n do
readln(a[i]);
front:=1; back:=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 sum:=sum+a[deque[front]];
end;
write(sum);
close(output);
end.