Pagini recente » Cod sursa (job #1252739) | Cod sursa (job #1450935) | Istoria paginii runda/dedicatie_speciala4/clasament | Cod sursa (job #1630756) | Cod sursa (job #2645185)
#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;
list<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;
}