Pagini recente » Cod sursa (job #46141) | Cod sursa (job #1780679) | Cod sursa (job #2906631) | Cod sursa (job #2926542) | Cod sursa (job #966677)
Cod sursa(job #966677)
#include<stdio.h>
#include<deque>
#include<iostream>
#define MAX_SIZE 500001
int main() {
std::deque<int> dq;
std::deque<int>::iterator it = dq.begin();
int num[MAX_SIZE], n, k;
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(it != dq.end() && 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;
}