Pagini recente » Cod sursa (job #2117670) | Cod sursa (job #1792512) | Cod sursa (job #510417) | Cod sursa (job #2135070) | Cod sursa (job #2288391)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 5000000
int d[1 + NMAX];
int v[1 + NMAX];
int main() {
int n, k;
FILE *f = fopen ( "secventa.in", "r" );
fscanf ( f, "%d%d", &n, &k );
for ( int i = 0; i < n; ++i )
fscanf ( f, "%d", &v[i] );
fclose ( f );
int st = 0, dr = -1;
long long s = 0;
for ( int i = 0; i < n; ++i ) {
if ( st <= dr && d[st] == i - k )
++st;
while ( st <= dr && v[i] <= v[d[dr]] )
--dr;
d[++dr] = i;
if ( i >= k - 1 )
s += v[d[st]];
}
f = fopen ( "secventa.out", "w" );
fprintf ( f, "%lld", s );
fclose ( f );
return 0;
}