Pagini recente » Cod sursa (job #2270743) | Cod sursa (job #2000958) | creangar | Cod sursa (job #2023362) | Cod sursa (job #2750314)
#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;
}