Pagini recente » Cod sursa (job #2231892) | Cod sursa (job #1767273) | Cod sursa (job #788131) | Cod sursa (job #2344560) | Cod sursa (job #2346989)
//#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
#include <deque>
int mn = 10000001;
long long s = 0;
std::deque< std::pair< int, int > >dq;
int main() {
FILE *fin, *fout;
int n, k, i, pos, nr;
fin = fopen( "deque.in", "r" );
fout = fopen( "deque.out", "w" );
fscanf( fin, "%d%d", &n, &k );
for ( i = 0; i < n; i++ ) {
while ( !dq.empty() && i - dq.front().second + 1 > k )
dq.pop_front();
fscanf( fin, "%d", &nr );
while ( !dq.empty() && nr < dq.back().first )
dq.pop_back();
dq.push_back( { nr, i } );
if ( i >= k - 1 )
s += ( long long )dq.front().first;
}
fprintf( fout, "%lld", s );
fclose( fin );
fclose( fout );
return 0;
}