Pagini recente » Cod sursa (job #1855487) | Cod sursa (job #75748) | Cod sursa (job #1839802) | Cod sursa (job #23330) | Cod sursa (job #1750898)
#include <stdio.h>
#include <cstring>
#include <iostream>
#define maxn 5000010
using namespace std;
int nums[maxn], deque[maxn], n, k, front = 1, back = 0;
long long sum = 0;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
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;
}