Cod sursa(job #697575)
| Utilizator | Data | 29 februarie 2012 09:53:25 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
program deque;
var f,g:text;
n,k,i,c,p:longint;
a:array [0..5000000] of longint;
s:int64;
cd:array [1..5000000] of longint;
begin
assign (f,'deque.in'); reset (f);
assign (g,'deque.out'); rewrite (G);
readln (f,n,k);
for i:=1 to n do
readln (f,a[i]);
s:=0;
c:=0; p:=1;
for i:=1 to n do
begin
while (p<=c) and ( a[i]<=a[cd[c]] )do
c:=c-1;
c:=c+1;
cd[c]:=i;
if i>=k then
begin
if cd[p]=i-k then
p:=p+1;
s:=s+a[cd[p]];
end;
end;
write (g,s);
close (f); close (G);
end.
