Pagini recente » Cod sursa (job #2948765) | Cod sursa (job #832817) | Cod sursa (job #85137) | Borderou de evaluare (job #492493) | Cod sursa (job #3312809)
#include <bits/stdc++.h>
#define fi first
#define se second
using namespace std;
using i32 = int32_t;
using i64 = int64_t;
int main() {
#ifndef LOCAL
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
i32 n;
i32 k;
cin >> n >> k;
i64 s{0};
deque<pair<i32, i32>> dq;
for (int i = 0; i < n; ++i) {
i32 e;
cin >> e;
for (; dq.size() && dq.front().fi <= i - k;) {
dq.pop_front();
}
for (; dq.size() && dq.back().se >= e;) {
dq.pop_back();
}
dq.emplace_back(i, e);
if (i >= k - 1) {
s += dq.front().se;
}
}
cout << s << endl;
return 0;
}