Pagini recente » Atasamentele paginii Profil phanthom | Cod sursa (job #816838) | Istoria paginii utilizator/envinyatar | Profil dobosh69 | 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;
}