Pagini recente » Cod sursa (job #2072204) | Cod sursa (job #1704130) | Cod sursa (job #2608618) | Cod sursa (job #780294) | Cod sursa (job #3144933)
#include <stdio.h>
int s[5000010], dq[5000010];
int main(void) {
FILE* f = fopen("deque.in", "r");
FILE* g = fopen("deque.out", "w");
int n, k, front = 1, back = 0, res = 0;
fscanf(f, "%d %d", &n, &k);
for (int i = 1; i <= n; i++)
fscanf(f, "%d", &s[i]);
for (int i = 1; i <= n; i++) {
while (front <= back && s[i] <= s[dq[back]]) back--;
dq[++back] = i;
if (dq[front] == i - k) front++;
if (i >= k) res += s[dq[front]];
}
fprintf(g, "%d", res);
fclose(f);
fclose(g);
return 0;
}