Pagini recente » Cod sursa (job #3003690) | Cod sursa (job #708185) | Cod sursa (job #2472630) | Cod sursa (job #1228862) | Cod sursa (job #784096)
Cod sursa(job #784096)
#include<stdio.h>
#define MAX 5000001
using namespace std;
int A[MAX] , D[MAX] , N , front , back ,K;
long long s;
int main()
{
freopen("deque.in" , "r" , stdin );
freopen("deque.out" , "w" , stdout );
scanf("%d%d" , &N , &K );
for( int i = 1 ; i <= N ; ++i )
scanf("%d" , &A[i] );
front = 1 , back = 0;
for( int i = 1 ; i<= N ; ++i )
{
while(front <= back && A[i] <= A[D[back]])back--;
D[++back] = i;
if(D[front] == i-K)
front++;
if( i >= K )
s+=A[D[front]];
}
printf("%lld" , s );
}