Pagini recente » Cod sursa (job #1502048) | Cod sursa (job #483471) | Cod sursa (job #3264512) | Cod sursa (job #855978) | Cod sursa (job #2487335)
#include <stdio.h>
#define N 5000000
int v[N], dq[N];
using namespace std;
int main(){
FILE *fin, *fout;
fin = fopen( "deque.in", "r" );
fout = fopen( "deque.out", "w" );
int n, k, i, st, dr;
long long sum;
fscanf( fin, "%d%d", &n, &k );
st = sum = 0;
dr = -1;
for ( i = 0; i < n; i ++ ){
fscanf( fin, "%d", &v[i] );
if ( dq[st] == i - k )
st ++;
while ( st <= dr && v[i] <= v[ dq[dr] ] ){
dr --;
}
dq[++dr] = i;
if ( i >= k - 1 ){
sum += v[dq[st]];
}
}
fprintf( fout, "%lld", sum );
fclose( fin );
fclose( fout );
return 0;
}