Pagini recente » Cod sursa (job #933576) | Cod sursa (job #952072) | Cod sursa (job #2924215) | Cod sursa (job #1563967) | Cod sursa (job #2766821)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int n, k;
fin >> n >> k;
vector< int > v(n + 1);
for(int i = 1; i <= n; ++i) {
fin >> v[i];
}
deque< pair< int, int > > dq;
for (int i = 1; i < k; ++i) {
while(dq.size() > 0 && dq.back().first > v[i]) {
dq.pop_back();
}
dq.push_back({v[i], i});
}
long long ans = 0;
for(int i = k; i <= n; ++i) {
while(dq.size() > 0 && dq.back().first > v[i]) {
dq.pop_back();
}
dq.push_back({v[i], i});
if(dq.front().second < i - k + 1) dq.pop_front();
ans += dq.front().first;
}
fout << ans << '\n';
return 0;
}