Pagini recente » Cod sursa (job #2209715) | Cod sursa (job #2099084) | Cod sursa (job #1510171) | Cod sursa (job #394562) | Cod sursa (job #591949)
Cod sursa(job #591949)
var a:array[1..5000000,1..22] of longint;
n,k,i,j,p:longint;
s:int64;
f,g:text;
function min(a,b:int64):int64;
begin
if a<b then min:=a else min:=b;
end;
begin
assign(f,'deque.in');
assign(g,'deque.out');
reset(f);
rewrite(g);
readln(f,n,k);
for i:=1 to n do
readln(f,a[i,0]);
p:=0;
while 1 shl (p+1)<=n do inc(p);
for i:=1 to p do
for j:=1 to n do
if j+(1 shl (i-1))>n then break else
a[j,i]:=min(a[j,i-1],a[j+(1 shl (i-1)),i-1]);
p:=0;
while 1 shl (p+1)<=k do inc(p);
s:=0;
for i:=1 to n-k+1 do
s:=s+min(a[i,p],a[i+k-(1 shl p),p]);
writeln(g,s);
close(g);
end.