Pagini recente » Cod sursa (job #1789091) | Cod sursa (job #1816120) | Cod sursa (job #2501411) | Cod sursa (job #3256135) | Cod sursa (job #626306)
Cod sursa(job #626306)
#include <stdio.h>
#define NMAX 10000
int N, K;
int A[NMAX], deque[NMAX];
int front, back;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int i;
long long sum = 0;
scanf("%d %d", &N, &K);
front = 1, back = 0;
for (i=1; i<=N; ++i)
scanf("%d", &A[i]);
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)
sum += A[deque[front]];
}
printf("%lld ", sum);
return 0;
}