Pagini recente » Cod sursa (job #2585352) | Cod sursa (job #3123752) | Cod sursa (job #3198221) | Cod sursa (job #499219) | Cod sursa (job #1480516)
#include <stdio.h>
#include <deque>
using namespace std;
int main (void) {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int n, k;
scanf("%d %d", &n, &k);
pair <int, int> temp;
deque < pair <int, int> > dq;
long long s = 0;
scanf("%d", &temp.first);
temp.second = 1;
dq.push_front(temp);
for (int i = 2; i <= n; ++i) {
++temp.second;
if (i - dq.front().second >= k) dq.pop_front();
scanf("%d", &temp.first);
while (!dq.empty() && dq.back().first >= temp.first) {
dq.pop_back();
}
dq.push_back(temp);
if (i >= k) s += dq.front().first;
}
printf("%Ld", s);
return 0;
}