Pagini recente » Cod sursa (job #647015) | Cod sursa (job #3120559) | Sandbox (cutiuţa cu năsip) | Clasament pregonix | Cod sursa (job #2645176)
#include <bits/stdc++.h>
using namespace std;
int32_t main()
{
ios::sync_with_stdio(false), cin.tie(nullptr);
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int n , k; cin >> n >> k;
vector<int> v(n);
for (auto &it : v) cin >> it;
int64_t ans = 0;
int i = 0;
deque<int> dq;
for (i = 0; i < k; i++) {
while (!dq.empty() && v[i] <= v[dq.back()]) dq.pop_back();
dq.push_back(i);
}
while (i < n) {
ans += v[dq.front()];
while (!dq.empty() && dq.front() <= i - k) dq.pop_front();
while (!dq.empty() && v[i] <= v[dq.back()]) dq.pop_back();
dq.push_back(i);
i++;
}
ans += v[dq.front()];
cout << ans;
return 0;
}