Pagini recente » Cod sursa (job #2110959) | Cod sursa (job #2796133) | Cod sursa (job #2264068) | Cod sursa (job #1830789) | Cod sursa (job #784511)
Cod sursa(job #784511)
Const
tfi = 'deque.in';
tfo = 'deque.out';
Nmax = 5000000;
Type
arr1 = array[1..Nmax] of longint;
Var
fi,fo : text;
N,K,f,r : longint;
res : int64;
A,st : arr1;
(*------------------------------------*)
Procedure nhap;
var
i : longint;
begin
assign(fi,tfi); reset(fi);
read(fi,N,K);
for i := 1 to n do
read(fi,A[i]);
close(fi);
end;
(*------------------------------------*)
Procedure push(i : longint);
begin
inc(r);
st[r] := i;
end;
(*------------------------------------*)
Procedure xuly;
var
i,tg : longint;
begin
f := 1;
r := 0;
For i := 1 to n do
begin
while (f <= r) and (A[i] <= A[st[r]]) do dec(r);
while (f <= r) and (i - st[f] + 1 > k) do inc(f);
push(i);
if i >= k then res := res + A[st[f]];
end;
end;
(*------------------------------------*)
Procedure inkq;
begin
assign(fo,tfo); rewrite(fo);
write(fo,res);
close(fo);
end;
(*------------------------------------*)
(*------------------------------------*)
BEGIN
nhap;
xuly;
inkq;
END.