Pagini recente » Cod sursa (job #559925) | Cod sursa (job #2220305) | Cod sursa (job #271295) | Cod sursa (job #2852955) | Cod sursa (job #698481)
Cod sursa(job #698481)
#include <cstdio>
#include <deque>
using namespace std;
deque <long> deq;
long N, K, i, A[5000001];
long long s;
int main() {
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%ld %ld", &N, &K);
for (i = 1; i <= N; ++i) {
scanf("%ld", &A[i]);
}
for (i = 1; i <= N; ++i) {
while (!deq.empty() && A[i] <= A[deq.back()])
deq.pop_back();
deq.push_back(i);
if (deq.front() == i-K)
deq.pop_front();
if (i >= K)
s += A[deq.front()];
}
printf("%lld\n", s);
return 0;
}