Pagini recente » Cod sursa (job #1896696) | Cod sursa (job #462510) | Cod sursa (job #1725001) | Cod sursa (job #570777) | Cod sursa (job #2780652)
#include <cstdio>
#include <deque>
#define MaxN 5000005
using namespace std;
int n, k, v[MaxN];
deque<int> q;
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", &v[i]);
}
for (int i = 1; i <= n; i++) {
if (!q.empty() && q.front() == i - k)
q.pop_front();
while (!q.empty() && v[q.back()] >= v[i])
q.pop_back();
q.push_back(i);
if (i >= k) {
sum += v[q.front()];
}
}
printf("%lld", sum);
return 0;
}