Pagini recente » Cod sursa (job #1434353) | Cod sursa (job #2600864) | Cod sursa (job #809546) | Cod sursa (job #1145368) | Cod sursa (job #2140599)
uses sysutils;
const SIZE = 5000000;
type
dqe = record
x : integer;
i : integer;
end;
deque_t = array[0..SIZE] of dqe;
var
dq : deque_t;
n, k, x, i, t, h : Int32;
r : Int64;
fin, fout : text;
buf : string;
begin
assign(fin, 'deque.in');
assign(fout, 'deque.out');
reset(fin);
rewrite(fout);
Read(fin, n);
Read(fin, k);
t := 0;
h := 0;
r := 0;
for i := 0 to n do
begin
Read(fin, x);
while (t - 1 >= h) and (dq[t - 1].x >= x) do
begin
t := t - 1;
end;
dq[t].x := x;
dq[t].i := i;
t := t + 1;
if i - k >= dq[h].i then
begin
h := h + 1;
end;
if i >= k - 1 then
begin
r := r + dq[h].x;
end;
end;
writeln(fout, r);
close(fin);
close(fout);
end.