Pagini recente » Cod sursa (job #3169177) | Cod sursa (job #400275) | Cod sursa (job #287275) | Cod sursa (job #310493) | Cod sursa (job #344317)
Cod sursa(job #344317)
#include <stdio.h>
#define MAXN 5000010
long A[MAXN],Deque[MAXN];
long Back,Front,N,K;
long long res;
int main() {
long i;
freopen("grader_test7.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%ld%ld",&N,&K);
for (i=1;i<=N;++i) scanf("%ld",&A[i]);
Back = 0;
Front = 1;
for (i=1;i<=N;++i) {
while (Front <= Back && A[i] <= A[Deque[Back]]) Back--;
Deque[++Back] = i;
if (Deque[Front] == i-K) Front++;
if (i>=K) res += A[Deque[Front]];
}
printf("%lld\n",res);
fclose(stdin);
fclose(stdout);
return 0;
}