Pagini recente » Cod sursa (job #2357815) | Cod sursa (job #1450679) | Cod sursa (job #3253) | Borderou de evaluare (job #520023) | Cod sursa (job #416143)
Cod sursa(job #416143)
program pascal;
var f,g:text; a,deque:array[0..5000000] of longint;
i,front,back,k,n,s:longint;
procedure citire;
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]);
close(f);
end;
procedure alfa;
begin
front:=1; back:=0; s:=0;
for i:=1 to n do
begin
while (front<=back) and (a[i]<=a[deque[back]]) do back:=back-1;
back:=back+1;
deque[back]:=i;
if deque[front]=i-k then front:=front+1;
if (i>=k) then s:=s+a[deque[front]];
end;
write(g,s);
close(g);
end;
begin
citire;
alfa;
end.