Cod sursa(job #697399)
| Utilizator | Data | 29 februarie 2012 08:58:26 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
program sss;
var f,g:text;
n,i,st,dr,s,k:longint;
a,c:array[1..5000005] 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]);
st:=1;
dr:=0;
s:=0;
for i:=1 to n do
begin
while (st<=dr) and (a[i]<=a[c[dr]]) do
dr:=dr-1;
dr:=dr+1;
c[dr]:=i;
if c[st]=i-k then
st:=st+1;
if i>=k then
s:=s+a[c[st]];
end;
write(g,s);
close(f);
close(g);
end.