Pagini recente » Cod sursa (job #2745959) | Cod sursa (job #687262) | Cod sursa (job #2179573) | Cod sursa (job #251761) | Cod sursa (job #346461)
Cod sursa(job #346461)
type ref=^nod;
nod=record
as,ad:ref;
nr,poz:longint;
end;
var bufin:array[1..65535] of byte;
v,u,sf,u2:ref;
n,k,i:longint;
x,s:int64;
f,g:text;
begin
assign(f,'deque.in');
assign(g,'deque.out');
reset(f);rewrite(g);
settextbuf(f,bufin);
readln(f,n,k);
for i:=1 to n do
begin
readln(f,x);
if v=nil then
begin
new(v);
v^.as:=nil;
v^.ad:=nil;
v^.nr:=x;
v^.poz:=i;
sf:=v;
end
else
begin
u:=sf;
while (u<>nil) and (u^.nr>=x) do
begin
u2:=u^.as;
dispose(u);
u:=u2;
end;
u2:=u;
new(u);
u^.nr:=x;
u^.as:=u2;
u^.ad:=nil;
u^.poz:=i;
sf:=u;
sf^.ad:=nil;
if u2=nil then
v:=u
else
u2^.ad:=u;
end;
if i>=k then
begin
while v^.poz<=i-k do
begin
u:=v^.ad;
dispose(v);
v:=u;
v^.as:=nil;
end;
inc(s,v^.nr);
end;
end;
write(g,s);
close(f);close(g);
end.