Pagini recente » Cod sursa (job #3136106) | Cod sursa (job #3135047)
#include <stdio.h>
#include <stdlib.h>
#define maxN 5000001
int N,K;
int A[maxN];
int main() {
FILE* f = fopen("deque.in", "r");
FILE* g = fopen("deque.out", "w");
Deque deque;
initializeDeque(&deque);
int sum=0;
fscanf(f, "%d %d", &N, &K);
for (int i = 0; i < N; i++)
fscanf(f, "%d", &A[i]);
fclose(f);
for(int i = 0; i < N; i++){
while(!(empty(&deque)) && A[i]<=A[deque.back])
pop_back(&deque);
push_back(&deque,i);
if(deque.front == i-K)
pop_front(&deque);
if(i>=K-1)
sum+=A[deque.front];
}
fprintf(g, "%d", sum);
fclose(g);
return 0;
}