Pagini recente » Cod sursa (job #1560477) | Cod sursa (job #2001904) | Cod sursa (job #566430) | Cod sursa (job #1094885) | Cod sursa (job #2054666)
#include <bits/stdc++.h>
using namespace std;
int N, K;
deque <int> dq;
vector <int> v;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
cin >> N >> K;
v.resize(N + 1);
for(int i = 1;i <= N;i++)
cin >> v[i];
for(int i = 1;i <= K;i++) {
int val = v[i];
while(dq.size() && v[dq.front()] >= val)
dq.pop_front();
dq.push_back(i);
}
long long sum = 0LL;
sum += v[dq.front()];
for(int i = K + 1;i <= N;i++) {
int val;
val = v[i];
while(dq.size() && dq.front() <= i - K)
dq.pop_front();
while(dq.size() && v[dq.front()] >= val)
dq.pop_front();
dq.push_back(i);
cerr << dq.front() << "\n";
sum += 1LL * v[dq.front()];
}
cout << sum;
return 0;
}