Pagini recente » Cod sursa (job #607621) | Monitorul de evaluare | Cod sursa (job #557040) | Cod sursa (job #2335564) | Cod sursa (job #2054670)
#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];
long long sum = 0LL;
for(int i = 1;i <= N;i++) {
int val;
val = v[i];
while(dq.size() && v[dq.back()] >= val)
dq.pop_back();
while(dq.size() && dq.front() <= i - K)
dq.pop_front();
dq.push_back(i);
if(i >= K)
sum += 1LL * v[dq.front()];
}
cout << sum;
return 0;
}