Pagini recente » Cod sursa (job #1344678) | Cod sursa (job #281282) | Cod sursa (job #2147353) | Cod sursa (job #1087068) | Cod sursa (job #1750890)
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int nums[500010], deque[500010];
int n, k, front = 1, back = 0;
long long sum = 0;
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; i ++)
scanf("%d", &nums[i]);
for (int i = 1; i <= n; i ++) {
while (front <= back && nums[i] <= nums[deque[back]])
back --;
deque[++back] = i;
if (deque[front] == i - k)
front ++;
if (i >= k)
sum += nums[deque[front]];
}
printf("%lli\n", sum);
return 0;
}