Cod sursa(job #269144)
| Utilizator | Data | 2 martie 2009 15:56:15 | |
|---|---|---|---|
| Problema | Deque | Scor | 15 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
var n,k,x,i,first,last:longint;
a,deque:array[0..5000000] of longint;
s:qword;
begin
assign(input,'deque.in');
assign(output,'deque.out');
reset(input);
rewrite(output);
read(n,k);
for i:=1 to n do
read(a[i]);
first:=1;
last:=0; s:=0;
for i:=1 to n do
begin
while (a[i]<a[deque[last]]) and (last>=first) do dec(last);
inc(last);
deque[last]:=i;
if (deque[first]=i-k) then
inc(first);
if i>=k then inc(s,a[deque[first]]);
end;
write(s);
close(input);
close(output);
end.
