Pagini recente » Cod sursa (job #1186728) | Cod sursa (job #185690) | Cod sursa (job #964245) | Cod sursa (job #887855) | Cod sursa (job #633779)
Cod sursa(job #633779)
#include <cstdio>
#include <deque>
using namespace std;
const int MAX_N = 5000002;
deque < int > Deque, index;
int N, K, val, i;
long long sum;
int main()
{
freopen( "deque.in", "r", stdin );
freopen( "deque.out", "w", stdout );
scanf( "%d %d", &N, &K );
for( i = 1 ; i <= N; ++i )
{
scanf( "%d", &val);
while( !Deque.empty() && val <= Deque.back() )
{
Deque.pop_back();
index.pop_back();
}
Deque.push_back( val );
index.push_back( i );
if( index.front() == i - K )
{
Deque.pop_front();
index.pop_front();
}
if( i >= K )
sum += Deque.front();
}
printf( "%lld ", sum );
fclose( stdin );
fclose( stdout );
return 0;
}