Pagini recente » Cod sursa (job #3367442) | Cod sursa (job #3367876) | Cod sursa (job #3366336) | Cod sursa (job #3367931) | Cod sursa (job #3368794)
#include <fstream>
#include <deque>
#include <vector>
#include <algorithm>
#define ll long long int
std::ifstream in("deque.in");
std::ofstream out("deque.out");
ll ans = 0;
int n,k;
std::vector<int>v;
int main(void) {
in >> n >> k;
v.resize(n);
for(int i = 0 ; i < n ; i ++ ) {
in >> v[i];
}
std::deque<int>dq;
for(int i = 0 ; i < n ; i ++ ) {
while(!dq.empty() && v[i] < v[dq.back()]) {
dq.pop_back();
}
dq.push_back(i);
if (i >= k) {
if (dq.front() <= i - k) {
dq.pop_front();
}
}
if (i >= k - 1) {
ans += v[dq.front()];
}
}
out << ans;
return 0;
}