Pagini recente » Cod sursa (job #2924846) | Cod sursa (job #2549129) | Cod sursa (job #319286) | Cod sursa (job #738111) | Cod sursa (job #966680)
Cod sursa(job #966680)
#include<stdio.h>
#include<deque>
#include<iostream>
#define MAX_SIZE 5000010
int num[MAX_SIZE], n, k;
int main() {
std::deque<int> dq;
long long s = 0;
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d %d", &n, &k);
for(int i = 1; i <= n; i++)
scanf("%d", &num[i]);
for(int i = 1; i <= n; i++) {
while(dq.size() && num[i] <= num[dq.back()])
dq.pop_back();
dq.push_back(i);
if(dq.front() == i - k)
dq.pop_front();
if(i >= k)
s += num[dq.front()];
}
printf("%lld", s);
return 0;
}