Pagini recente » Cod sursa (job #954334) | Cod sursa (job #1837022) | Cod sursa (job #1313109) | Cod sursa (job #2139795) | Cod sursa (job #578609)
Cod sursa(job #578609)
const f = 'deque.in'; g = 'deque.out';
const maxn = 5000010;
var
i, n, k, front, back : longint;
sum : int64;
a, deque : array[ 0..maxn ] of longint;
buf, buf1 : array[1..1 shl 17] of char;
begin
assign( input,f ); reset( input );
assign( output,g ); rewrite( output );
settextbuf( input, buf );
settextbuf( output, buf1 );
readln( n, k );
for i := 1 to n do read( a[i] );
front := 1 ; back := 0;
for i := 1 to n do begin
while ( front <= back ) and ( a[i] <= a[ deque[ back ] ] ) do dec( back );
inc( back );
deque[ back ] := i;
if ( deque[front] = i - k ) then inc( front );
if ( i >= k ) then sum := sum + a[ deque[front] ];
end;
writeln( sum );
end.