Pagini recente » Cod sursa (job #1070557) | Cod sursa (job #1462774) | Cod sursa (job #1464514) | Cod sursa (job #1077287) | Cod sursa (job #2285622)
#include <stdio.h>
#include <deque>
using namespace std;
typedef int ll;
const int NMAX = 5000005;
ll N, K;
ll vec[NMAX];
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d %d", &N, &K);
long long sum = 0;
deque<ll> d;
for (int i = 1; i <= N; ++i) {
scanf("%d", &vec[i]);
}
for (int i = 1; i <= N; ++i) {
while (d.size() > 0 && vec[i] < vec[d.back()]) {
d.pop_back();
}
d.push_back(i);
if (i >= K) {
ll f = d.front();
sum += vec[f];
}
if (i - d.front() + 1 >= K) {
d.pop_front();
}
}
printf("%lld", sum);
fclose(stdin);
fclose(stdout);
return 0;
}