Pagini recente » Cod sursa (job #1285326) | Cod sursa (job #2043269) | Cod sursa (job #1823713) | Cod sursa (job #448686) | Cod sursa (job #303694)
Cod sursa(job #303694)
#include <stdio.h>
#define maxN 5000100
int V[maxN], Deque[maxN], N, K;
int main () {
long long Sol = 0;
int i, st, dr;
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d", &N, &K);
for (i = 1; i <= N; ++ i)
scanf("%d", &V[i]);
st = dr = 1;
for (i = 1; i <= N; ++ i) {
while (st != dr && V[Deque[dr - 1]] > V[i]) dr --;
Deque[dr ++] = i;
while (Deque[st] <= i - K) st ++;
if (i >= K)
Sol += V[Deque[st]];
}
printf("%lld\n", Sol);
return 0;
}