Pagini recente » Cod sursa (job #1973910) | Cod sursa (job #2882705) | Cod sursa (job #2123621) | Cod sursa (job #1195501) | Cod sursa (job #1327473)
#include <cstdio>
#include <deque>
using namespace std;
#define IN "deque.in"
#define OUT "deque.out"
#define MAX_N 5000005
FILE *f;
deque < int > D;
int v[ MAX_N ];
int main( ) {
long long sum = 0LL;
int N, k;
f = fopen( IN, "r" );
fscanf( f, "%d%d", &N, &k );
for( register int i = 1; i <= N; ++i ) {
fscanf( f, "%d", v + i );
while( !D.empty( ) && v[ D.back( ) ] >= v[ i ] )
D.pop_back( );
D.push_back( i );
if( D.front( ) == i - k )
D.pop_front( );
if( i >= k )
sum += v[ D.front( ) ];
}
fclose( f );
f = fopen( OUT, "w" );
fprintf( f, "%lld\n", sum );
fclose( f );
return 0;
}