Cod sursa(job #382090)
| Utilizator | Data | 12 ianuarie 2010 20:08:06 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
var k,i,n,l,r:longint;
bufin:array[1..65000] of byte;
a,d:array[0..5000001] of longint;
s:int64;
begin
assign(input,'deque.in');
reset(input);
assign(output,'deque.out');
rewrite(output);
settextbuf(input,bufin);
readln(n,k);
for i:=1 to n do readln(a[i]);
l:=1;
r:=0;
for i:=1 to n do begin
while (l<=r) and (a[i]<=a[d[r]]) do dec(r);
inc(r);
d[r]:=i;
if i>=k then s:=s+a[d[l]];
if d[l]=i-k+1 then inc(l);
end;
writeln(s);
close(input);
close(output);
end.
